SQL隨記(四)
阿新 • • 發佈:2017-06-21
class tput false ica raise output 完整 not delet
1.for loop 循環
格式:for index in lower .. upper
loop
end loop;
for i in 1 .. g_descTbl.count loop if ( g_descTbl(i).col_type = 12 ) then utl_file.put( l_output, l_sep || g_descTbl(i).col_name || ‘ date ‘‘ddmmyyyyhh24miss‘‘ ‘); else utl_file.put( l_output, l_sep || g_descTbl(i).col_name || ‘ char(‘ || to_char(g_descTbl(i).col_max_len*2) ||‘ )‘ ); end if; l_sep := ‘,‘||g_nl ; end loop;
2.sql的異常處理:
(1)系統運行出錯時自動拋出
(2)使用RAISE關鍵字拋出任何的異常,格式:RAISE exception_name;
declare is_exception EXCEPTION; bein RAISE is_exception; end;
(3)使用Raise_Application_Error 拋出異常,它能拋出一個異常並給異常賦予一個錯誤號以及錯誤信息。格式: Raise_application_error(error_number,message[,true,false])
begin Raise_application_error(-20123,‘can not find error‘,true); end;
(4)用戶自定義異常
declare ex_exception EXCEPTION; --定義異常 PRAGMA EXCEPTION_INIT(ex_exception , -2292); --給自定義異常進行關聯 begin DELETE FROM departments WHERE department_id = v_deptno; IF SQL%NOTFOUND THEN RAISE ex_exception ; --拋出 END IF; EXCEPTION WHEN ex_exception THEN --處理 DBMS_OUTPUT.PUT_LINE(‘違反數據完整性約束!‘); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLCODE||‘---‘||SQLERRM); end;
SQL隨記(四)