動態sql語句 異常處理

2021-06-05 07:42:55 字數 1435 閱讀 6422

--execute immediate 實現ddl

declare

v_ddl varchar2(200);

begin

v_ddl:='create table mytable as select ename,sal from emp';

execute immediate v_ddl;

dbms_output.put_line('mytable表已建');

end;

--execute immediate 返回單行記錄

--execute immediate 查詢語句 into 行資料型別 using 對應佔位符變數

declare

v_id emp.empno%type;

v_emp emp%rowtype;

v_sql varchar2(100);

begin

v_id:=7788;

v_sql:='select * from emp where empno=:id';--id為佔位符

execute immediate v_sql into v_emp using v_id;

dbms_output.put_line(v_emp.ename||' '||v_emp.sal);

end;

--異常處理

declare

v_name emp.ename%type;

begin

select ename into v_name from emp where empno=&emp_no;

dbms_output.put_line('員工姓名:'||v_name);

exception

when no_data_found then

dbms_output.put_line('無記錄返回');

end;

--系統預定義異常處理

--異常名稱 描述

--access_into_null 未初始化物件

--cursor_already_open 試圖開啟已經開啟的游標

--zero_divide 除數為零

--no_data_found 無返回記錄

--invalid_number 字串轉換為數字失敗

--value_error 轉換、截斷、大小約束錯誤

--too_many_rows 執行select into語句返回多行記錄

--others 其他異常

--自定義異常處理

exception

when 異常名1 then

異常處理語句段1;

when 異常名2 then

異常處理語句段2;

異常處理語句

在程式的編寫過程中會出現各種錯誤,語法錯誤在程式啟動時就會檢測出來,它是程式正常執行的前提條件。程式中還有一種錯誤發生在程式執行後,可能是由於邏輯問題,又或者是業務發生了改變,為了能讓使用者有更好的體驗,加強 的健壯性,我們需要對這些錯誤進行處理,也叫異常處理。在python中不同的異常可以用不同的...

SQL異常處理

異常處理 異常處理,也叫作錯誤處理,通常是把異常記錄在日誌中 在儲存過程中加上異常處理後,讓異常原因記錄在日誌表中。注意 異常處理有自己的begin.end.意思就是異常處理的begin.end.和儲存過程的begin.end.不共用。語法 begin 執行的語句 exception 一旦出現異常 ...

C 語句異常處理語句

1,try.catch.finally 不會找到邏輯錯誤,try裡面放檢測 catch 捕捉到的異常,怎樣處理finally不管有沒有異常都會執行 try catch finally 3種組合 2,finally 很頑強 return後仍然會執行 3,4,excption的用法 exception是...