首页 > 代码库 > SQL随记(四)
SQL随记(四)
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随记(四)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。