利用以下代码
var ids varchar2(50);
exec :ids := '1,2,3';
select * from xmltable(:ids);
希望获得如下结果
COLUMN_VALUE
1
2
3
但是直接用以上代码跑出来的值是(XMLTYPE),怎样用xmltable函数才能将逗号分隔的字符串转换为各具有一个值的行?
利用以下代码
var ids varchar2(50);
exec :ids := '1,2,3';
select * from xmltable(:ids);
希望获得如下结果
COLUMN_VALUE
1
2
3
但是直接用以上代码跑出来的值是(XMLTYPE),怎样用xmltable函数才能将逗号分隔的字符串转换为各具有一个值的行?
收起
xmltype是一种类型,而不是值,要打开后才能看到里面的数据,或者转换类型来直接显示,比如用to_number转换成数字显示
select to_number(column_value) from xmltable('1,2,3');
另外再给你几种方式
select regexp_substr('1,2,3', '[^,]+',1, level)
from dual
connect by level <= regexp_count('1,2,3', '[^,]+')
select * from table(ora_mining_number_nt(1,2,3));
报告相同问题?