【问题标题】:Error in select query in OracleOracle 中的选择查询错误
【发布时间】:2012-01-24 21:30:07
【问题描述】:

我在 oracle 11g xe 的存储过程中使用了 select 语句。但是显示错误

pls-00428-an INTO clause is expected with select statement

我只是无法理解错误。当我搜索时,我发现在 pl/sql 中需要一个 into 子句。我正在使用 toad。但是当我使用 sql 编辑器时,会显示同样的错误。

这是我的程序

CREATE OR REPLACE PROCEDURE ACTSINFO.sp_Get_WorkDetails
IS
BEGIN
 select * from workdetails;
END sp_Get_WorkDetails;

【问题讨论】:

    标签: oracle plsql oracle11g


    【解决方案1】:

    Oracle 与 Microsoft SQL Server 不同,因此从过程(或函数)返回结果集也不同。

    您正在寻找的是“流水线表函数”。

    有关说明和示例,请参阅手册:

    http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/tuning.htm#i53109

    以下是其他网站的更多示例:

    http://www.oracle-developer.net/display.php?id=207
    http://www.oracle-base.com/articles/misc/PipelinedTableFunctions.php
    http://psoug.org/reference/pipelined.html

    【讨论】:

    • @Sathy:是的,但我发现一个表格函数更容易处理,因为你可以简单地运行select * from table(my_function())。并非所有编程语言都能很好地处理引用游标
    • 确实,想听听您对管道函数为何超过 ref 光标的看法。谢谢!
    【解决方案2】:

    您正在尝试编写错误 语法或不正确 使用SELECT 语句。您必须创建 cursor 或使用 SELECT .. INTO 语法将标量值设置为局部变量。

    【讨论】:

    • 我对 oracle 不熟悉,能否请您说明如何使用 select..into 语法编写有关上述过程的过程
    • @ksg - 看看帖子。我已经粘贴了 oracle 文档链接。
    • 这里的问题是我想以数据表的形式获取所有数据。如果我写一个 select.. into 语句,我可以以数据表的形式获取所有数据
    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 2021-09-27
    • 2016-05-03
    • 1970-01-01
    • 2019-12-09
    • 2010-10-07
    • 1970-01-01
    • 2014-08-26
    相关资源
    最近更新 更多