奇怪的函数+like问题

jym2002 2012-08-31 03:28:05
CREATE OR REPLACE
type obj_wwdf as object(rq varchar2(8),df number);

CREATE OR REPLACE
type tab_wwdf as table of obj_wwdf;

CREATE OR REPLACE function FUN_WWDF(rq varchar2)
return tab_wwdf
as
l_tab_emp tab_wwdf := tab_wwdf();
begin
WITH T AS(...... 里面有 like rq||'%' 这样的条件)
select obj_wwdf(myrq.s_date,mark) bulk collect into l_tab_emp
from t;
return l_tab_emp;
end;

函数创建能成功,没报错
当执行以下sql时报错
select * FROM TABLE(CAST(FUN_WWDF('201208') AS TAB_WWDF))

ORA-00907: 缺失右括号
ORA-06512: 在 "CYWW2.FUN_WWDF", line 6

但当我 将条件中 rq||'%' 直接写死 如 '201208%' 这样时 就能成功执行

这是什么情况啊,必须得改成substr的形式吗?
...全文
108 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
fw0124 2012-08-31
  • 打赏
  • 举报
回复
似乎没有问题啊
declare
rq varchar2(100) := 'SMITH';
rec emp%rowtype;
begin
with t as(
select * from emp where ename like rq || '%')
select * into rec from t where rownum < 2;
end;

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧