【问题标题】:How return table data in a PL SQL?如何在 PL SQL 中返回表数据?
【发布时间】:2019-05-16 13:05:19
【问题描述】:

我正在尝试创建一个返回表但不起作用的 PL SQL

CREATE PROCEDURE MyProcedure 
AS
BEGIN
SELECT * FROM MyTable
END

这里有什么问题?谢谢!

【问题讨论】:

    标签: oracle oracle-sqldeveloper


    【解决方案1】:

    SELECT 语句 END 过程需要以 ; 结尾。

    CREATE OR REPLACE PROCEDURE MyProcedure 
    (
       P_Column1 OUT INTEGER,
       P_Column2 OUT VARCHAR2,
       P_COlumn3 OUT FLOAT
    )
    AS
    BEGIN
       SELECT Column1, Column2, Column3 
       INTO P_Column1, P_Column2, P_Column3 
       FROM MyTable
       WHERE <Condition>;
    END;
    /
    

    使用CURSOR:

    CREATE PROCEDURE GET_ONESET_CUSTOMERINFO
    (
       CURSOR_ IN OUT TYPES.REF_CURSOR
    )
    AS
    BEGIN
       OPEN CURSOR_ FOR
          SELECT * FROM MyTable
          WHERE <condition>;
    END;
    

    请在this page中找到更多示例

    【讨论】:

    • LINE/COL 错误 --------- ----------------------------- -------------------------------- 6/4 PLS-00103:遇到符号“文件结束”时期待以下之一:;错误:检查编译器日志
    • 5/5 PLS-00428:此 SELECT 语句中应有一个 INTO 子句错误:检查编译器日志
    • @jnoguerm 我猜 select 语句的列必须分配给变量。请参考the answer
    • 你能举个简单的例子吗?我不能让它工作。
    • @jnoguerm 我已经用不同数据类型的OUT 参数和SELECT ... INTO 更新了asnwer。
    猜你喜欢
    • 2018-04-10
    • 2021-08-30
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    相关资源
    最近更新 更多