zoukankan      html  css  js  c++  java
  • 存储过程及函数初探

    pl/sql   procedures 

    new  新建

    F8 

    Ctrl + s  保存

    refresh  刷新

    test 测试

    dbms_output.put_line('Test script | DBMS Output | ...');

    IF SQL%ROWCOUNT = 1 THEN

    XXX

    ELSE

    XXX

    END IF;

    以上片段 管中窥豹可见一斑

    命名规范

    CREATE OR REPLACE PROCEDURE P_XX_TT(PARM1 IN VARCHAR2, RESULT OUT INTEGER) IS
      V_XX_NAME VARCHAR2(10) DEFAULT '1234567890';
    BEGIN
      INSERT INTO ZXG
        (A, B)
        SELECT C.* FROM ZXG C;
      RESULT := SQL%ROWCOUNT;
      IF RESULT = 1 THEN
        DBMS_OUTPUT.PUT_LINE(RESULT);
        DBMS_OUTPUT.PUT_LINE('插日志 成功');
        COMMIT;
        --插日志 成功
      ELSE
        DBMS_OUTPUT.PUT_LINE(RESULT);
        DBMS_OUTPUT.PUT_LINE('插日志 失败| sdf | ..');
        ROLLBACK;
        RESULT := 0;
        --插日志 失败
      END IF;
    EXCEPTION
      WHEN OTHERS THEN
        --插入数据时产生异常
        DBMS_OUTPUT.PUT_LINE(SQLCODE || SQLERRM);
        ROLLBACK;
        RESULT := 0;
    END P_XX_TT;
    -- 更新
    DECLARE
      A ZXG.A%TYPE;
      B VARCHAR2(10);
      CURSOR C IS
        SELECT DISTINCT A, B FROM ZXG WHERE A IS NOT NULL;
    
    BEGIN
      OPEN C;
      FETCH C
        INTO A, B;
      WHILE C%FOUND LOOP
        UPDATE ZXG T SET T.A = B WHERE T.B = B;
        FETCH C
          INTO A, B;
      END LOOP;
      CLOSE C;
    END;
    -- 查看用sql 
    -- SELECT  * FROM zxg for update

    函数

    CREATE OR REPLACE
    
    FUNCTION mylog(v_type IN VARCHAR2, v_content IN VARCHAR2)
    
     RETURN NUMBER
    
     AS
    
    BEGIN
    
      insert into lxzb_log
      values
        (seq_log.nextval, v_type, v_content, sysdate);
    
      RETURN SQL%ROWCOUNT;
    
    END;

    注意:

    1.函数名不要使用关键字,比如 log ,会有莫名其妙的错误

    2. 如果函数中不包含 insert 等,可以通过 select 你的函数 from dual; 测试。否则通过 pl/sql test 测试

    3. 在存储过程中调用时 需要 v_var := yourfunction(param1,..) ,孤零零写一个 yourfunction(param1,...) 不好用

  • 相关阅读:
    UVA1292-----Strategic game-----树形DP解决树上的最小点覆盖问题
    【OpenGL游戏开发之三】OpenGl核心函数库汇总
    【Lucene】挖掘相关搜索词
    OpenMP入门教程(三)
    OpenMP入门教程(二)
    OpenMP入门教程(一)
    结构体的排序
    结构体
    循环群、对称群、陪集和拉格朗日定理、正规子群和商群
    概率论与数理统计(一)—— 随机事件与概率
  • 原文地址:https://www.cnblogs.com/zno2/p/4538258.html
Copyright © 2011-2022 走看看