在儲存過程中常用到字段值賦給變數的情況,此時主要會出現兩種情況
一,能查詢到記錄
記錄中字段值又分兩種情況
1、欄位有值
2、字段值為null
二、查詢不到記錄,count返回為0
--一下是**測試情況
-測試sql> select empno,sal,comm from emp where empno=7369;
empno sal comm
---------- ---------- ----------
7369 800
sql> declare v_empno number(6);
2 v_sal number(6);
3 v_comm number(6);
4 begin
5 select empno,sal,comm into v_empno,v_sal,v_comm from emp where empno=7369;
6 dbms_output.put_line('empno='||v_empno);
7 dbms_output.put_line('sal='||v_sal);
8 dbms_output.put_line('comm='||v_comm);
9 end;
10 /
empno=7369
sal=800
comm=
sql> declare v_empno number(6);
2 v_sal number(6);
3 v_comm number(6);
4 begin
5 select comm into v_comm from emp where empno=7369;
6 dbms_output.put_line('comm='||v_comm);
7 end;
8 /
comm=
sql> select * from emp where empno=7368;
未選定行
--未查找到記錄,直接賦值則會丟擲異常,針對這種情況,應做異常情況判斷處理
sql> declare v_empno number(6);
2 v_sal number(6);
3 v_comm number(6);
4 begin
5 select comm into v_comm from emp where empno=7368;
6 dbms_output.put_line('comm='||v_comm);
7 end;
8 /
declare v_empno number(6);
*第 1 行出現錯誤:
ora-01403: 未找到資料
ora-06512: 在 line 5
sql> declare v_comm number(6);
2 begin
3 select comm into v_comm from emp where empno=7368;
4 dbms_output.put_line('comm='||v_comm);
5 exception
6 when others then
7 dbms_output.put_line('no_date_found');
8 end;
9 /
no_date_found
pl/sql 過程已成功完成。
--處理空記錄情況
sql> declare v_comm number(6);
2 v_cnt number(6);
3 begin
4 select count(*) into v_cnt from emp where empno=7368;
5 if v_cnt > 0 then
6 select comm into v_comm from emp where empno=7368;
7 dbms_output.put_line('comm='||v_comm);
8 end if;
9 exception
10 when others then
11 dbms_output.put_line('no_date_found');
12 end;
13 /
pl/sql 過程已成功完成。
資料庫設計字段 null備註
在工作中,設計資料庫難免會出現各種缺陷,例如產生null欄位,這種缺陷有時候很有可能造成一些陷阱 例如 1.在利用not in查詢時無論在mssql還是mysql中都會產生資料庫不準確的資訊。2.大量浪費空間字段,造成資料庫的空間浪費 3.如果字元型的東西,最好設計為 字串,因為在查詢的時候 str...
資料庫欄位非空(null的缺點)
上週工作中,遇到資料庫字段是否設為空的問題。資料庫建表時,對於一些可填可不填的字段,我們盡量把他設定為非空,這種做法 1.可提高效能,2.可在很大 程度上避免空指標一類的問題。具體的好處頗多。1.節省空間。大體看上去,好像設定可以為空的時候更節省空間,但實際上,他比not null要多占用乙個bit...
資料庫 Oracle欄位橫置
補充背景需要 最近好久沒有寫文章了,主要原因因為專案試執行了,自己每天都要關注專案運 況,在穩定的時候去開發新的功能,但是在開發的時候,遇到乙個問題難倒我了。具體的原因是,有時候客戶想要的資料是一條記錄展示完,但是我們在資料庫存的時候,通常都是乙個存一條記錄。這就會有乙個問題,什麼問題呢,比方說,客...