【发布时间】:2013-11-24 06:57:02
【问题描述】:
我在 pl/sql 中写了这段代码,但我无法回答。
create or replace function mostafa.sbs_Topic_LedgerBalance8Column
(BranchID number,DateFrom number,DateTo number)
RETURN SYS_REFCURSOR
IS O_RESULT SYS_REFCURSOR;
BEGIN
open O_RESULT for
Select s* From Mostafa.topic ;
RETURN O_RESULT;
end sbs_Topic_LedgerBalance8Column;
我这样称呼它:
DECLARE v_refcursor SYS_REFCURSOR;
BEGIN
v_refcursor :=mostafa.sbs_topic_ledgerbalance8column(12,12,12);
FOR employee_rec IN v_refcursor
LOOP
DBMS_OUTPUT.put_line (
employee_rec.ID);
END LOOP;
end;
为什么我在检索结果时会出错?
错误是:v_refcursor 不是过程或未定义
【问题讨论】:
-
说您“出错”但不告诉我们什么错误或您在哪里得到它对我们没有多大帮助。您的函数中有一些语法错误,但我猜您在发布问题时已经介绍了这些错误。您还没有告诉我们
topic表的定义。你到底想避免什么?您是否试图避免声明topic%rowtype类型的变量?还是试图避免声明新类型? -
在 for 游标循环中不允许使用游标变量(
v_refcursor)。使用简单的loop .. end loop和open, fetch, close构造从该游标读取。
标签: oracle function plsql cursor