用plsql寫儲存過程的時候,遇到的幾個錯誤,寫的簡單點,
1、---------------------
問題:選項缺失或無效
原因:我的sql開頭 create or replace set_salary(ida int, sal int) as
少了 procedure
正確的應該是:
create or replace procedure set_salary(ida int, sal int) as
這個問題都是少了 procedure 造成的
2、---------------------
報錯問題:實際返回的行數超出請求的行數
-- created on 2019/8/6 by xiaoc
declare
-- local variables here
i int;
stu_id student.id%type;
begin
-- test statements here
for i in 1 .. 10 loop
dbms_output.put_line('當前i: ' || i);
select student.id into stu_id from student where student.id = i;
if stu_id is null then
insert into student (id) values (i);
commit;
end if;
end loop;
end;
報錯的是這一行:select student.id into stu_id from student where student.id = i;
我的原因:student 表裡面的 id 型別是 varchar,但在這裡條件查詢裡定義的 i 的型別是 int
解決:可以將 i 用 to_char轉一下,具體寫法
select student.id into stu_id from student where student.id = to_char(i, '99');
其中裡面為什麼是 『99』 ,以及各種型別互轉, 可參考 -->該鏈結
3、-------------------
記上乙個問題之後,select 不到資料,會報錯,目前的解決方法,先 count 一下有沒有重複的,如果為0, 就 insert,如果不為0,就跳過
**如下:
-- created on 2019/8/6 by xiaoc
declare
-- local variables here
i int;
s_count int;
stu_id student.id%type;
stu_name student.name%type;
begin
-- test statements here
for i in 1 .. 10 loop
dbms_output.put_line('當前i: ' || i);
select count(*) into s_count from student where student.id = i;
if s_count = 0 then
insert into student (id) values (i);
commit;
select student.id, student.name
into stu_id, stu_name
from student
where student.id = i;
dbms_output.put_line('當前資料: id-->' || stu_id || '名字:' || stu_name);
else
select student.id, student.name
into stu_id, stu_name
from student
where student.id = i;
dbms_output.put_line('當前資料: id-->' || stu_id || '名字:' || stu_name ||
'已存在, count:' || s_count);
end if;
end loop;
exception
when no_data_found then
dbms_output.put_line('當前i沒資料');
end;
編譯uboot時報錯
編譯u boot時出現 configuring for smdk6400 board ln 正在建立指向 arch arm include asm 的符號鏈結 asm 不支援的操作 make xx config 錯誤 1 然後再執行 make config的時候出現 could not find l...
Yii 關閉debug儲存資料時報錯
今天將 上傳到伺服器之後測試之後發現一切正常,然後關閉debug再次測試時出現報錯如下錯誤 yii base unknownpropertyexception getting unknown property front modules invoice models orderrecord invo...
編譯時 報錯處理(二)id型別
nsinteger i sender.tag property tag not found on object of type strong id 報錯原因 id型別不能使用點語法 解決方式一 利用get 方法獲取 tag值 nsinteger i sender tag 解決方式二 將id 強轉為u...