zoukankan      html  css  js  c++  java
  • 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 不直接显示结果出来,确实有点痛苦。害得我。。不说了。就这样,希望你不会走弯路了。

  • 相关阅读:
    NOIP2011 D1T1 铺地毯
    NOIP2013 D1T3 货车运输 倍增LCA OR 并查集按秩合并
    POJ 2513 trie树+并查集判断无向图的欧拉路
    599. Minimum Index Sum of Two Lists
    594. Longest Harmonious Subsequence
    575. Distribute Candies
    554. Brick Wall
    535. Encode and Decode TinyURL(rand and srand)
    525. Contiguous Array
    500. Keyboard Row
  • 原文地址:https://www.cnblogs.com/jiguixin/p/2601187.html
Copyright © 2011-2022 走看看