zoukankan      html  css  js  c++  java
  • Oracle存储过程的调用(返回参数)

    CREATE OR REPLACE PROCEDURE test_in_out_exception (v_empno VARCHAR2,v_guess_sal NUMBER,v_true_sal OUT NUMBER)
    AS
       v_exits   VARCHAR2 (20);
       v_sal     emp.sal%TYPE;
       v_raise EXCEPTION;
    BEGIN
       SELECT   COUNT (1)
         INTO   v_exits
         FROM   emp t
        WHERE   t.empno = v_empno;
    
       IF (v_exits > 0)
       THEN
          SELECT   t.sal
            INTO   v_sal
            FROM   emp t
           WHERE   t.empno = v_empno;
           v_true_sal :=  v_sal;
          IF (v_sal > v_guess_sal)
          THEN
             DBMS_OUTPUT.Put_line ('猜大了');
          ELSIF (v_sal < v_guess_sal)
          THEN
             DBMS_OUTPUT.Put_line ('猜小了');
          ELSIF (v_sal = v_guess_sal)
          THEN
             DBMS_OUTPUT.Put_line ('猜中了');
          END IF;
       ELSE
          RAISE v_raise;
       END IF;
    EXCEPTION
       WHEN v_raise
       THEN
          RAISE_APPLICATION_ERROR (-20010, 'v_empno not exists!');
       WHEN NO_DATA_FOUND
       THEN
          RAISE_APPLICATION_ERROR (-20011, 'ERROR:不存在!');
       WHEN OTHERS
       THEN
          ROLLBACK;
    END;

    Java 代码

            try {
                // 创建存储过程的对象
                CallableStatement c = conn.prepareCall("{call test_in_out_exception(?,?,?)}");
    
                // 给存储过程的第一个参数设置值
                c.setString(1, "7369");// 7369结果是 800    736900结果是 报错
                c.setInt(2, 24);
                // 注册存储过程的第二个参数
                c.registerOutParameter(3, java.sql.Types.INTEGER);
                // 执行存储过程
                c.execute();
                // 得到存储过程的输出参数值
                System.out.println(c.getInt(3));
            } catch (SQLException e) {
                System.out.println("SQLState : " + e.getSQLState());
                System.out.println("ErrorCode : " + e.getErrorCode());
                System.out.println("Message : " + e.getMessage());
                System.out.println("LocalizedMessage : " + e.getLocalizedMessage());
                //e.printStackTrace();
            } finally {
                conn.close();
            }

     表是数据oracle 的 scott  用户 默认的表

  • 相关阅读:
    HTML DOM教程 14HTML DOM Document 对象
    HTML DOM教程 19HTML DOM Button 对象
    HTML DOM教程 22HTML DOM Form 对象
    HTML DOM教程 16HTML DOM Area 对象
    ubuntu 11.04 问题 小结
    VC6.0的 错误解决办法 小结
    boot.img的解包与打包
    shell里 截取字符串
    从零 使用vc
    Imagemagick 对图片 大小 和 格式的 调整
  • 原文地址:https://www.cnblogs.com/opaljc/p/3367906.html
Copyright © 2011-2022 走看看