【问题标题】:how to execute procedure which has out varchar如何执行包含 varchar 的过程
【发布时间】:2019-05-02 05:46:22
【问题描述】:

我有一个包裹:

CREATE OR REPLACE PACKAGE BODY pack1
AS
    procedure proc1(column_1 in table1.column1%TYPE, column_2 in table1.column2%TYPE, results out varchar)

//code....
......
.....
....//
    END pack1;
/

我想知道如何执行这个程序。我知道这是一个愚蠢的问题,但我对此感到非常困惑。 我试过这个:exec pack1.proc1(123,'abc') 但这行不通。请告诉我如何执行此操作

【问题讨论】:

    标签: oracle stored-procedures plsql package


    【解决方案1】:

    您可以在 SQL* Plus 中使用绑定变量来获取结果并使用 PRINT 显示它

    VARIABLE v_result VARCHAR2
    EXECUTE pack1.proc1(123, 'abc', :v_result); --note the colon.
    PRINT v_result   --display the results.
    

    如果您是从 PL/SQL 块或其他过程调用它,您可以使用 DBMS_OUTPUT.PUT_LINE() 显示它

    SET SERVEROUTPUT ON
    DECLARE
      l_results VARCHAR2(20);
    BEGIN
     pack1.proc1(123, 'abc', l_results);
    DBMS_OUTPUT.PUT_LINE(l_results);
    END;
    /
    

    注意:使用VARCHAR2而不是VARCHAR作为过程参数results的数据类型

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 2021-07-06
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多