PL/SQL 执行存储过程

妈的,不得不吐一下,在网上到处都是答案。结果能搞定的可没几个,下面经过亲测是对的。

         首先PL/SQL分为“命令窗体”和”SQL窗体”,我一般都是在”SQL窗体”干活,结果执行存储过程老是不对头。都不知道是不是SQL写错了。哎!最后还是在“命令窗体”搞定了。

还是引用人家的例子吧:

SQL> CREATE OR REPLACE PROCEDURE A(I OUT VARCHAR2,
  2                                J IN NUMBER,
  3                                K IN VARCHAR2) AS
  4  BEGIN
  5    I := TO_CHAR(J) || K;
  6  END;
  7  /
 
Procedure created 
 
SQL> SET SERVEROUTPUT ON
SQL> 
SQL> DECLARE
  2  v_i VARCHAR2(2000);
  3  BEGIN
  4  A(v_i,123,'ABC');
  5  DBMS_OUTPUT.put_line(V_I);
  6  END;
  7  /
 
123ABC
 
PL/SQL procedure successfully completed

还是说明一下,免得出错。

1,“/”这个杠杠很重要,就相当于是SQL SERVER 的GO语句。

2,如果你第一次没有输出结果,那么就是因为没有用这句:SET SERVEROUTPUT ON

而在SQL 窗体中怎么执行存储过程

DECLARE
  v_i VARCHAR2(2000);
  i VARCHAR2(50);
BEGIN 
  i:='test1111';
  A(v_i,123,i); 
  DBMS_OUTPUT.put_line(v_i);
END;

对于显示执行完成,结果没有出现结果值,不用怕,在这里面就可以看到结果了。

image

对于用惯了SQL SERVER 不直接显示结果出来,确实有点痛苦。害得我。。不说了。就这样,希望你不会走弯路了。

原文地址:https://www.cnblogs.com/jiguixin/p/2601187.html