当前位置:  开发笔记 > Android > 正文

ODCIVARCHAR2LIST和ODCINUMBERLIST之间有什么区别?

如何解决《ODCIVARCHAR2LIST和ODCINUMBERLIST之间有什么区别?》经验,为你挑选了1个好方法。

我在varchar字符上使用ODCIVARCHAR2LIST和ODCINUMBERLIST,两个函数都有效,结果相同.我想知道你是否可以解释为什么我在使用ODCINUMBERLIST时没有收到错误?我使用ODCIVARCHAR2LIST的动机是什么?

谢谢

很抱歉没有添加我的代码.我正在使用上述函数将xml值制成行.在提取它们并从所有不必要的字符中"清除"它们之后,每个单值需要看起来像这样:abc-xyz-aaa-ab1-2db-a-bbb.然后我使用这段代码:

select * 
from TABLE(CAST (MULTICAST (SELECT LEVEL FROM DUAL 
CONNECT BY LEVEL < REGEX_COUNT (my_field, 'regex_exp')) as SYS.ODCIVARCHAR2LIST  

如果我使用SYS.ODCINUMBERLIST,我得到相同的结果:

ABC-XYZ-AAA-ab1-2db-A-BBB
ABC-WWW-FFS-CVX-嘧菌酯-A-GGG
...
...



1> Marmite Bomb..:

您的片段中可能存在拼写错误,我假设您MULTISET没有使用MULTICAST

这是您的简化示例

select dump(COLUMN_VALUE,16) 
from TABLE(CAST (MULTISET(SELECT LEVEL FROM DUAL 
CONNECT BY LEVEL <= 2) as SYS.ODCIVARCHAR2LIST ))

回国

Typ=1 Len=1: 31
Typ=1 Len=1: 32

的典型值= 1意味着一个VARCHAR2返回

与之类似的例子 OdciNumberList

select dump(COLUMN_VALUE,16) 
from TABLE(CAST (MULTISET(SELECT LEVEL FROM DUAL 
CONNECT BY LEVEL <= 2) as SYS.OdciNumberList ))

回报

Typ=2 Len=2: c1,2
Typ=2 Len=2: c1,3

这里类型2是预期的NUMBER.

隐式转换规则在这里也是有效的,即具有格式良好的数字的字符串可以被处理为数字.

SELECT dump(COLUMN_VALUE,16)
FROM TABLE(sys.OdciNumberList('42','43'));

Typ=2 Len=2: c1,2b
Typ=2 Len=2: c1,2c

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有