问题描述
嗨,汤姆!
这是我的预设:
然后我尝试将XML转换为对象:
好吧,效果很好。然后假设我们得到了标签VAL不存在的损坏数据:
嗯,它工作得很好,我们只有VAL null。然后我们再次得到损坏的数据与额外的标签FAIL_ATTR:
失败了!
所以这里是我的问题: 我可以以某种方式强制Oracle跳过这些在类型规范中没有声明的属性吗?对我来说,想念他们没关系。
这是我的预设:
SQL> create or replace type my_type force is object( 2 id number, 3 val varchar2(4000) 4 ) 5 / Type created SQL> set serveroutput on size 999999 SQL> begin 2 dbms_output.put_line(xmltype(my_type(1, 'VAL')).getstringval); 3 end; 4 /PL/SQL procedure successfully completed 1 VAL 复制
然后我尝试将XML转换为对象:
SQL> declare 2 l_val my_type; 3 begin 4 xmltype('').toobject(l_val); 5 dbms_output.put_line('l_val.id = ' || l_val.id); 6 dbms_output.put_line('l_val.id = ' || l_val.val); 7 end; 8 / l_val.id = 1 l_val.id = VAL PL/SQL procedure successfully completed 1 VAL 复制
好吧,效果很好。然后假设我们得到了标签VAL不存在的损坏数据:
SQL> declare 2 l_val my_type; 3 begin 4 xmltype('').toobject(l_val); 5 dbms_output.put_line('l_val.id = ' || l_val.id); 6 dbms_output.put_line('l_val.id = ' || l_val.val); 7 end; 8 / l_val.id = 1 l_val.id = PL/SQL procedure successfully completed 1 复制
嗯,它工作得很好,我们只有VAL null。然后我们再次得到损坏的数据与额外的标签FAIL_ATTR:
SQL> declare 2 l_val my_type; 3 begin 4 xmltype('').toobject(l_val); 5 dbms_output.put_line('l_val.id = ' || l_val.id); 6 dbms_output.put_line('l_val.id = ' || l_val.val); 7 end; 8 / declare l_val my_type; begin xmltype(' 1 VAL YOU FAIL ').toobject(l_val); dbms_output.put_line('l_val.id = ' || l_val.id); dbms_output.put_line('l_val.id = ' || l_val.val); end; ORA-19031: Элемент или атрибут XML FAIL_ATTR не имеет соответствия в типе IBS.MY_TYPE ORA-06512: на "SYS.XMLTYPE", line 196 ORA-06512: на line 4 1 VAL YOU FAIL 复制
失败了!
所以这里是我的问题: 我可以以某种方式强制Oracle跳过这些在类型规范中没有声明的属性吗?对我来说,想念他们没关系。
专家解答
我已经与XML团队进行了检查-可悲的是,没有办法强制跳过额外的属性。
您必须构建自己的解决方案来进行映射。
或创建具有额外元素的类型;)
您必须构建自己的解决方案来进行映射。
或创建具有额外元素的类型;)
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
948次阅读
2025-03-17 11:33:53
Oracle DataGuard高可用性解决方案详解
孙莹
405次阅读
2025-03-26 23:27:33
墨天轮个人数说知识点合集
JiekeXu
348次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
338次阅读
2025-04-08 09:12:48
Oracle SQL 执行计划分析与优化指南
Digital Observer
306次阅读
2025-04-01 11:08:44
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
286次阅读
2025-03-24 09:42:53
Oracle 19c RAC更换IP实战,运维必看!
szrsu
283次阅读
2025-04-08 23:57:08
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
280次阅读
2025-03-19 14:41:51
oracle定时任务常用攻略
virvle
276次阅读
2025-03-25 16:05:19
Oracle NetSuite 客户说|健合(H&H)集团部署 Oracle NetSuite,全面提升全球运营效率
甲骨文中国
256次阅读
2025-03-28 15:00:30