问题描述
嗨,汤姆,
最近,我正在使用rqEval函数,它是Oracle Advanced Analytics的一部分。此函数的输入包括光标,例如
选择 *
从表 (rqEval (游标 (选择50 "除数",500 "numDots" 从对偶),
'从二元' 中选择1个id,1个val,
'Myrandomreddots2 '));
在我的情况下,我需要在PL/SQL中运行它,并希望传递输入参数并从那里创建游标。这是我所做的:
但随后它抛出一个错误:
错误报告-
ORA-06550: 第14行第27列:
PLS-00103: 当出现以下情况时,遇到符号 “SELECT”:
( ) - case mod new not null <一个标识符>
<双引号分隔标识符> <绑定变量>
表继续平均计数当前存在最大最小先前sql
stddev和方差执行多重集两个前导
拖尾forall合并年月日小时分钟秒
时区 _ 小时时区 _ 分钟时区 _ 区域时区 _ abbr
时间戳间隔日期
<具有字符集规格的字符串文字
ORA-06550: 第14行第176列:
PLS-00103: 遇到以下情况之一时遇到符号 “)”:
。,@; 用于 <标识符>
具有相交的 <双引号分隔标识符> 组
减序分区开始子分区并集,其中连接
样品
ORA-06550: 第19行,第0列:
PLS-00103: 遇到以下情况之一时遇到符号 “文件结尾”:
结束非pragma最终可实例化可持久顺序
覆盖静态成员构造函数映射
06550. 00000-"行 % s,列 % s:\ n % s"
* 原因: 通常是PL/SQL编译错误。
* 行动:
从选择var从dual (其中var是输入变量) 中构造游标的正确方法是什么?
最近,我正在使用rqEval函数,它是Oracle Advanced Analytics的一部分。此函数的输入包括光标,例如
选择 *
从表 (rqEval (游标 (选择50 "除数",500 "numDots" 从对偶),
'从二元' 中选择1个id,1个val,
'Myrandomreddots2 '));
在我的情况下,我需要在PL/SQL中运行它,并希望传递输入参数并从那里创建游标。这是我所做的:
DECLARE partition_method VARCHAR2(100); query_type VARCHAR2(100); part_param NUMBER; selectivity NUMBER; pred NUMBER; v_Success NUMBER; cursorInput REF CURSOR BEGIN partition_method:= 'HASH'; query_type := '='; part_param := 10; selectivity := 0.1; cursorInput := cursor(SELECT 'x2' "run_environ", partition_method "partition_method", query_type "query_type", part_param "part_param", selectivity "selectivity" FROM dual); 选择 * INTO v_Success FROM table(rqEval(cursorInput, 'SELECT 1 SCORE FROM DUAL', 'par_score_scripts')); DBMS_OUTPUT.PUT_LINE('Score: '|| v_Success||'!'); END; /复制
但随后它抛出一个错误:
错误报告-
ORA-06550: 第14行第27列:
PLS-00103: 当出现以下情况时,遇到符号 “SELECT”:
( ) - case mod new not null <一个标识符>
<双引号分隔标识符> <绑定变量>
表继续平均计数当前存在最大最小先前sql
stddev和方差执行多重集两个前导
拖尾forall合并年月日小时分钟秒
时区 _ 小时时区 _ 分钟时区 _ 区域时区 _ abbr
时间戳间隔日期
<具有字符集规格的字符串文字
ORA-06550: 第14行第176列:
PLS-00103: 遇到以下情况之一时遇到符号 “)”:
。,@; 用于 <标识符>
具有相交的 <双引号分隔标识符> 组
减序分区开始子分区并集,其中连接
样品
ORA-06550: 第19行,第0列:
PLS-00103: 遇到以下情况之一时遇到符号 “文件结尾”:
结束非pragma最终可实例化可持久顺序
覆盖静态成员构造函数映射
06550. 00000-"行 % s,列 % s:\ n % s"
* 原因: 通常是PL/SQL编译错误。
* 行动:
从选择var从dual (其中var是输入变量) 中构造游标的正确方法是什么?
专家解答
您应该能够隔离打开ref光标,然后将其作为常规参数传递,例如
SQL> create or replace 2 function ff(rc sys_refcursor) return int is 3 x int; 4 begin 5 fetch rc into x; 6 return 1; 7 end; 8 / Function created. SQL> SQL> declare 2 rc sys_refcursor; 3 q int; 4 begin 5 open rc for select 99 from dual; 6 q := ff(rc); 7 end; 8 / PL/SQL procedure successfully completed.复制
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1393次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
847次阅读
2025-03-17 11:33:53
RAC 19C 删除+新增节点
gh
527次阅读
2025-03-14 15:44:18
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
487次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
386次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
340次阅读
2025-03-26 23:27:33
墨天轮个人数说知识点合集
JiekeXu
282次阅读
2025-04-01 15:56:03
一键装库脚本3分钟极速部署,传统耗时砍掉95%!
IT邦德
276次阅读
2025-03-10 07:58:44
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
259次阅读
2025-03-24 09:42:53
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
259次阅读
2025-03-19 14:41:51