加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【ORACLE】逗号分隔的字符串的应用

发布时间:2020-12-12 15:08:46 所属栏目:百科 来源:网络整理
导读:【问题】遇到逗号分隔的字符串转为嵌套表, 如果采用自定义的方法,需要写个循环,比较麻烦 【分析】 ORACLE提供了类似的过程来实现这个功能 dbms_utility.comma_to_table( list IN VARCHAR2, tablen OUT BINARY_INTEGER, tab OUT lname_array); CREATETABLE
dbms_utility.comma_to_table(
list IN VARCHAR2,
tablen OUT BINARY_INTEGER,
tab OUT lname_array);
CREATETABLEc2t_test (
readlineVARCHAR2(200));

INSERTINTOc2t_testVALUES('"1","Mainframe","31-DEC-2001"');
VALUES('"2","MPP","01-JAN-2002"');
VALUES('"3","Mid-Size","02-FEB-2003"');
VALUES('"4","PC","03-MAR-2004"');
VALUES('"5","Macintosh","04-APR-2005"');
COMMIT;

SELECT*FROMc2t_test;

TABLEtest_import (
src_noNUMBER(5),
src_descVARCHAR2(20),
load_dateDATE);

CREATEORREPLACEPROCEDUREload_c2t_test IS

c_stringVARCHAR2(250);
cntBINARY_INTEGER;
my_tabledbms_utility.lname_array;

BEGIN
FORt_recIN(FROMc2t_test)
LOOP
dbms_utility.comma_to_table(t_rec.readline,cnt,my_table);

my_table(1) :=TRANSLATE(my_table(1),'A"','A');
my_table(2) :=TRANSLATE(my_table(2),'A');
my_table(3) :=TRANSLATE(my_table(3),'A');

INTOtest_import
(src_no,src_desc,load_date)
VALUES
(TO_NUMBER(my_table(1)),my_table(2),TO_DATE(my_table(3)));
ENDLOOP;
COMMIT;
ENDload_c2t_test;
/

exec load_c2t_test;

FROMtest_import;


【结论】 comma_to_table
table_to_comma 都是对应函数 字符串与内存表互转

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

【问题】遇到逗号分隔的字符串转为嵌套表, 如果采用自定义的方法,需要写个循环,比较麻烦 【分析】 ORACLE提供了类似的过程来实现这个功能
    推荐文章
      热点阅读