oracle12c 函数问题,带有函数的Package规范的Oracle 12c无法正常工作

我在包规范中有一个游标(涉及多个表连接) . 我写它是因为我想要管道函数的返回类型 . 但是当我编译它时会给出以下错误 .

[error] ora-00905 (4: 23): pl/sql: ora-00905: missing keyword

[error] pls-00103 (6: 15): pls-00103: encountered the symbol "BEGIN" when expecting one of the following:

end function pragma procedure subtype type

current cursor d

[error] pls-00103 (25: 14): pls-00103: encountered the symbol "S" when expecting one of the following:

end not pragma final instantiable order overriding static

member constructor map.

我可以将光标移动到正文中吗?但我需要管道功能的返回类型

以下是示例包:

CREATE OR REPLACE PACKAGE pkg_test AS

CURSOR cur_match IS

WITH FUNCTION Fun(p_id varchar2) RETURN varchar2 IS

v_desc VARCHAR2(100);

BEGIN

v_desc := CASE p_id WHEN NULL THEN '123' WHEN 'A' THEN '345' WHEN 'B' THEN '678'

END;

RETURN v_desc;

END;

s AS (SELECT sysdate FROM dual)

SELECT s.*,Fun('X') FROM s;

TYPE tab_cur IS TABLE OF cur_match%ROWTYPE;

FUNCTION get_data RETURN tab_cur PIPELINED;

END;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值