
利用外部表的特性将文本数据插入到表中。
创建一个目录
CREATE OR REPLACE DIRECTORY "EXTDIR_2" AS 'd:\ext_table_2';
复制
在d:\ext_table_2目录下准备一个数据文件data.txt,内容如下:
10|9|7
4|3|2
创建一个空表,预期将d:\ext_table_2\data.txt文件中的数据插入到该表
CREATE TABLE EXT_TABLE0 ( C1 INT, C2 INT, C3 INT ) ;
创建一个存储过程,在存储过程中创建一个外部表,借助外部表将数据查询插入到实体表
create or replace procedure imp_ext_table(owner varchar(500), tname varchar(500),dataStr varchar(500)) assqlstr varchar;beginsqlstr='';select 'CREATE EXTERNAL TABLE if not exists ' || owner || '.EXT_' || tname || substr(tabledef(owner,tname),instr(tabledef(owner,tname),'('),instr(tabledef(owner,tname),'STORAGE')-instr(tabledef(owner,tname),'(')-1) || ' FROM DATAFILE DEFAULT DIRECTORY EXTDIR_2 LOCATION(' || '''' || dataStr || ''')' ||' PARMS(FIELDS DELIMITED BY ''|'', RECORDS DELIMITED BY 0x0d0a)'into sqlstr from dual;execute immediate sqlstr;execute immediate 'insert into ' || owner || '.' || tname || ' select * from '|| owner ||'.EXT_' || tname;commit;execute immediate 'drop table ' || owner ||'.EXT_' || tname;end;
调用存储过程,将文件中的数据插入到实体表
call imp_ext_table(user,‘EXT_TABLE0’,‘data.txt’);
检查数据是否成功插入
select * from EXT_TABLE0;

以上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集或下方相关分享。在此邀请更多学员参与“达梦技术干货投稿活动”,稿件获选后将在达梦“干货分享”专栏进行发布,欢迎来稿!
相关分享:

文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




