zoukankan      html  css  js  c++  java
  • 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;
    

      

  • 相关阅读:
    【题解】[USACO07OPEN]Dining G
    【学习笔记】拉格朗日插值
    【题解】简单的数学题
    docker-compose编排参数详解
    Harbor搭建企业级docker仓库
    centos7制作U盘启动盘
    c语言输入矩阵的对角线之和
    搭建rsync+inotify实现实时备份
    CentOS7添加自定义脚本服务
    Linux搭建NFS服务
  • 原文地址:https://www.cnblogs.com/lirenzhujiu/p/7058721.html
Copyright © 2011-2022 走看看