【发布时间】:2011-05-19 04:20:39
【问题描述】:
它可能会回应谁,
我正在尝试返回要在其他功能中使用的日期和工作日列表。下面的代码编译没有错误。但它应该给出 15 天的输出(通过 V_MAX_DAYS 变量)和该周的天数。
我尝试过这样实现,但无法使用 DBMS_OUTPUT 获得输出。我想测试它,但运行时出现 ORA-06532 错误。 我的目标是像我们使用 SYS_REFCURSOR 一样将值返回给 asp.net 应用程序。 我怎样才能做到这一点? 感谢您的关心,
脚本如下:
CREATE OR REPLACE TYPE DATE_ROW AS OBJECT
(
WEEKDAY_VALUE DATE,
DATE_IN_LIST VARCHAR2(5)
)
/
CREATE OR REPLACE TYPE DATE_TABLE as table of DATE_ROW
/
CREATE OR REPLACE FUNCTION FN_LISTDATES
RETURN DATE_TABLE
IS
V_DATE_TABLE DATE_TABLE := DATE_TABLE ();
V_MAX_DAYS NUMBER := 15;
V_CALCULATED_DATE DATE;
V_WEEKDAY VARCHAR2 (5);
BEGIN
FOR X IN -2 .. V_MAX_DAYS
LOOP
SELECT TO_DATE (TO_CHAR (SYSDATE + X, 'DD.MM.YYYY'))
INTO V_CALCULATED_DATE
FROM DUAL;
V_DATE_TABLE.EXTEND;
V_DATE_TABLE(X) := DATE_ROW(V_CALCULATED_DATE, 'Test');
END LOOP;
RETURN V_DATE_TABLE;
END;
/
【问题讨论】:
-
如果要从PL/SQL获取输出,需要设置serveroutput:
set serveroutput on。 -
我将使用 TOAD 9.6.0.27
-
FWFD,对测试用例有什么建议吗?到目前为止,我了解到您提供我使用 SQLPlus 控制台对其进行测试。顺便说一句,我想我应该尝试使用流水线表函数,因为 20 行并不多。但它将为每个登录到该网站的用户调用。
标签: oracle function object plsql types