问题描述
我有一个SQL语句可以自己运行,并通过db链接获取结果。但是,如果我想在同一select语句之前使用 “create table….as ..” 或 “insert in入…” 将结果集放入表中,则会出现ORA-22992错误。是什么原因造成的?
SQL语句如下:
表 “a” 和 “c” 没有LOB字段,表 “b” 有一个字段 “Ldesc”,它是CLOB,但它不在选择列表中。
本地版本:
甲骨文数据库11g企业版11.2.0.2.0-64bit生产
远程版本:
甲骨文数据库11g企业版11.2.0.2.0-64bit生产
SQL语句如下:
Select a.m, a.n, a.o, a.p, b.q, b.r, b.s, c.t, c.u,c.v From a@remote a left join b@remote b on b.m=a.m and b.n=a.n Left join c@remote c on c.m=a.m and c.m=a.n Where a.yr=2019 a.class=1 order by a.m复制
表 “a” 和 “c” 没有LOB字段,表 “b” 有一个字段 “Ldesc”,它是CLOB,但它不在选择列表中。
本地版本:
甲骨文数据库11g企业版11.2.0.2.0-64bit生产
远程版本:
甲骨文数据库11g企业版11.2.0.2.0-64bit生产
专家解答
我怀疑这是一个ANSI加入转换问题。转换为经典加入对我有用:
加入...使用形式的查询工作在19c,所以可能有一个补丁可用。
create table t1 ( c1 int, c2 clob ); create table t2 ( c1 int, c2 clob ); insert into t1 with rws as ( select level x from dual connect by level <= 10 ) select x, 'clob data' from rws; insert into t2 select * from t1; create table tmpt as select c1 from t1@loopback t1 join t2@loopback t2 using ( c1 ); ORA-22992: cannot use LOB locators selected from remote tables create table tmpt as select t1.c1 from t1@loopback t1, t2@loopback t2 where t1.c1 = t2.c1; select * from tmpt; C1 1 2 3 4 5 6 7 8 9 10复制
加入...使用形式的查询工作在19c,所以可能有一个补丁可用。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1321次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
790次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
722次阅读
2025-03-06 09:41:49
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
557次阅读
2025-03-05 00:42:34
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
463次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
352次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
314次阅读
2025-03-26 23:27:33
Oracle分区和执行计划相关的几个问题
听见风的声音
307次阅读
2025-03-07 08:51:42
数据库管理-第299期 数据库是否需要定期重启(20250306)
胖头鱼的鱼缸
250次阅读
2025-03-06 09:09:35
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
246次阅读
2025-03-19 14:41:51