暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle table() 函数的不一致行为

askTom 2017-07-07
397

问题描述

嗨,
我尝试在行集合上使用table() 函数。它在delete语句中失败 (在其中xxx中删除MY_TABLE (从表 (集合) 中选择yyy))。当我在select语句中使用相同的构造时,它工作正常。更新语句存在相同的问题。它看起来像一个明显的Oracle错误。
我的测试用例-

创建表Z_TEST (
id整数,
瓦尔·瓦尔查尔2(10)
);

创建或替换软件包ZPKG1为
类型ZTestColl是Z_TEST % rowtype的表;
程序测试;
结束;
/

创建或替换软件包主体ZPKG1为
tab1 ZTestColl := ZTestColl();

程序测试为
c整数;
开始
dbms_output.put_line('从表 () 中测试选择');
从表 (tab1) 中选择count(*) into c;
dbms_output.put_line('测试选择从 .. 中的id (从表 () 中选择id)');
从Z_TEST中选择计数 (*) 进入c,其中id在 (从表中选择id (tab1));
dbms_output.put_line('测试从 .. where id中删除 (从表 () 中选择id)');
从Z_TEST中删除其中的id (从表中选择id (tab1));
当其他人则例外
dbms_output.put_line(sqlerrm);
结束;
结束;
/

exec zpkg1.test;

输出为
测试选择从表 ()
测试选择从 ..其中id在 (从表 () 中选择id)
测试删除 ..其中id在 (从表 () 中选择id)
ORA-00902: 数据类型无效


专家解答

我同意 -- 看起来像只虫子。

我在12.1和12.2上复制我的系统。

请在支持下提交错误。(如果来自客户而不是我,它的重量更大)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论