oracle plsql异常,【Oracle篇】异常处理和PLSQL
一、所有的PL/SQL異常都具有以下幾個基本特征: 錯誤類型:表示了錯誤是ORA錯誤還是PLS錯誤 錯誤代號:一串表示錯誤代號的數字 錯誤文本:錯誤消息文本,包括錯誤代號 二、PL/SQL會產生兩種類型的錯誤 : ORA錯誤 PLS錯誤 ORA錯誤通常是運行時的錯誤,應該由
一、所有的PL/SQL異常都具有以下幾個基本特征:
錯誤類型:表示了錯誤是ORA錯誤還是PLS錯誤
錯誤代號:一串表示錯誤代號的數字
錯誤文本:錯誤消息文本,包括錯誤代號
二、PL/SQL會產生兩種類型的錯誤:
ORA錯誤
PLS錯誤
ORA錯誤通常是運行時的錯誤,應該由程序來處理。
PLS錯誤通常是編譯錯誤,應該在執行程序之前進行處理。
--:使用PL/SQL語句塊輸出99乘法表
--dbms_output.put_line()
declare
v_i number;
v_k number;
v_j number;
begin
for v_i in 1..9 loop
v_j:=1;
while v_j<=v_i loop
v_k:=v_i*v_j;
dbms_output.put_line('v_j'||v_j||'*'||'v_i'||v_i||'='||'v_k'||v_k);
v_j:=v_j+1;
end loop;
dbms_output.put_line(chr(10));
end loop;
end;
--:使用Select ename into v_ename from emp where deptno=&no;
-- 出現多行值的異常(TOO_MANY_ROWS),使用異常處理打印錯誤代碼和錯誤信息;注意最后使用others收尾
declare
v_ename emp.ename%type;
begin
select ename into v_ename from emp where deptno=&no;
dbms_output.put_line('v_ename:'||v_ename);
-- if v_ename = 'chen'
-- then dbms_output.put_line('v_ename:'||v_ename);
--else
-- dbms_output.put_line('too_many_rows:'||sqlerrm);
--end if;
exception
when TOO_MANY_ROWS then
dbms_output.put_line('多值異常'||sqlerrm);
when others then
dbms_output.put_line('其他異常');
end;
--:通過輸入的員工編號,使用%rowtype類型定義一個emp表的行類型,并輸出員工編號、名字、工資、部門編號。
-- 注意處理沒有查到數據的異常(no_data_found)
declare
v_emp emp%rowtype;
begin
select * into v_emp from emp where empno=&員工編號;
dbms_output.put_line('v_empno:'||v_emp.empno ||'v_empname:'||v_emp.ename||'v_empsal'||v_emp.sal||'v_empdeptno:'||v_emp.deptno);
exception
when no_data_found then
dbms_output.put_line('異常:沒找到數據'||sqlerrm);
when others then
dbms_output.put_line('其他異常');
end; 本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴 本文系統來源:php中文網
總結
以上是生活随笔為你收集整理的oracle plsql异常,【Oracle篇】异常处理和PLSQL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女生抖腿会有什么坏处
- 下一篇: oracle 插入出错_使用sqlca打