gpt4 book ai didi

oracle - ODCIVARCHAR2LIST和ODCINUMBERLIST有什么区别?

转载 作者:行者123 更新时间:2023-12-04 13:59:01 26 4
gpt4 key购买 nike

我在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-azx-a-ggg
...
...

最佳答案

您的代码段中可能有错别字,我假设您使用的是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

typ = 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

关于oracle - ODCIVARCHAR2LIST和ODCINUMBERLIST有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34479090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com