zoukankan      html  css  js  c++  java
  • oracle存储过程的基本语法

    1、存储过程的语法结构:

    CREATE OR REPLACE PROCEDURE 过程名 AS

        声明语句段;

    BEGIN

        执行语句段;

    EXCEPTION

        异常处理语句段;

    END;

             

    2、SELECT INTO STATEMENT

    将SELECT查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)
    例如:

    BEGIN
        SELECT col1,col2 INTO 变量1,变量2 FROM typestruct where xxx;
    EXCEPTION
        WHEN NO_DATA_FOUND THEN xxxx;
    END;

            

    3、IF 判断
    IF V_TEST=1 THEN
        BEGIN 
            do something
        END;
    END IF;

            

    4、WHILE循环
    WHILE V_TEST=1 LOOP
        BEGIN
            XXXX
        END;
    END LOOP;

               

    5、变量赋值
    V_TEST := 123;

            

    6、用FOR IN 使用CURSOR
    ...
    IS
        CURSOR cur IS SELECT * FROM xxx;
    BEGIN
        FOR cur_result IN cur LOOP
            BEGIN
                V_SUM :=cur_result.列名1+cur_result.列名2
            END;
        END LOOP;
    END;

        

    7、带参数的CURSOR
    CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
    OPEN C_USER(变量值);
        LOOP
            FETCH C_USER INTO V_NAME;
            EXIT FETCH C_USER%NOTFOUND;
            do something
        END LOOP;
    CLOSE C_USER;

               

    创建存储过程实例

    CREATE OR REPLACE PROCEDURE stu_proc as
    --声明语句段
    v_name varchar2(20);
    BEGIN
    --执行语句段
    SELECT o.sname INTO v_name FROM student o WHERE o.id=1;
    DBMS_OUTPUT.put_line(v_name);
    EXCEPTION
    --异常处理语句段
    WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.put_line('NO_DATA_FOUND');
    END;

    --调用存储过程
    --
    CALL stu_proc();


     

  • 相关阅读:
    golang 的几个入门资料
    docker 容器网络基础
    nginx 容器反向代理网址的设置
    【知乎Live】狼叔:如何正确的学习Node.js
    nginx资料汇总
    web 框架
    work behind corp proxy
    [转载] 历史上前端领域的重要技术革命
    前后端要不要分离以及如何做
    微电子工艺基础知识讲解(集成电路历史/厂商/产业链)
  • 原文地址:https://www.cnblogs.com/linjiqin/p/2018411.html
Copyright © 2011-2022 走看看