【发布时间】:2014-02-14 02:29:50
【问题描述】:
我是 Oracle 的新手,正在尝试将一个简单的选择返回到我的调用应用程序中。
create or replace PROCEDURE testSelect
(
column1 OUT table.column1%TYPE,
column2 OUT table.column2%TYPE
)
IS
BEGIN
SELECT column1, column2
INTO column1, column2
FROM table
EXCEPTION
WHEN OTHERS THEN RAISE;
END testSelect;
这可以编译,但是当我尝试执行过程“EXEC testSelect ();”时,我收到以下消息:“调用中的参数数量或类型错误”。
感谢您的帮助和时间。
【问题讨论】:
-
我不会说这是一个重复,即使问题的措辞几乎相同。该线程中的答案涉及使用 sys_refcursor,我已经尝试过代替上述方法,但仍然无法正常工作。上面的示例看起来几乎与 Oracle 文档相同,但仍然无法执行。
-
您使用的是哪个版本的 Oracle?
-
您的
exec调用没有参数,但您的过程有两个。您需要定义一个要在调用中使用的变量。你从哪里运行这个?无论如何,这将只允许每个 OUT 参数中有一个值,听起来您正在尝试取回多行 - 所以您应该再次查看sys_refcursor或流水线函数。
标签: sql oracle stored-procedures