永发信息网

oracle 从本地服务器读取CSV文件的数据,插入到数据表里。数据文件可能是多个比如table1_2016-06-03.csv

答案:1  悬赏:0  手机版
解决时间 2021-12-02 21:19
oracle 从本地服务器读取CSV文件的数据,插入到数据表里。数据文件可能是多个比如table1_2016-06-03.csv
最佳答案
你的问题非常简单:
1、存储过程设置为只读取一个文件,存储过程设置传入两个参数,为文件路径和文件名。
2、写个脚本,列出文件名,把这些文件一个一个的送给存储过程处理。
给你个读文件存储过程存储过程:
PROCEDURE read_file(loc_in IN VARCHAR2, file_in IN VARCHAR2)
IS
file_handle UTL_FILE.FILE_TYPE;
NewLine     VARCHAr2(1024);
v_NBRCH TEST.NBRCH%TYPE;
v_NACNT TEST.NACNT%TYPE;
v_ONAME TEST.ONAME%TYPE;
BEGIN
   file_handle := UTL_FILE.FOPEN (loc_in, file_in, 'R');
    LOOP
    BEGIN
        UTL_FILE.GET_LINE(file_handle,NewLine);
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
      --跳出系统出口
         UTL_FILE.FCLOSE(file_handle);
           EXIT;
      WHEN OTHERS THEN
         UTL_FILE.FCLOSE(file_handle);
           RETURN;
    END;
    --这里是处理读出一行数据,分离出每个域到你的变量里面去。
    v_NBRCH:=TO_NUMBER(SUBSTr(NewLine,1,7));
    v_NACNT:=TO_NUMBER(SUBSTr(NewLine,9,9));
    v_ONAME:=SUBSTr(NewLine,19,10);
    --插入数据库
    INSERT INTO TEST(NBRCH,NACNT,ONAME) VALUES(v_NBRCH,v_ROWN,v_ONAME);
    COMMIT;
END LOOP;
END;如果运行读不到数据或出错,请使用Oracle dba登录,初始化系统变量,然后重启Oracle
ALTER SYSTEM SET UTL_FILE_DIR=*;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
微笑.I nice是什么意思
铁艺如何防锈?
经济扶平户有哪些
这个季节钓鱼用什么饵料好???
250毫升含100毫克,那么1ml含多少毫克
英语后是符音去不去e加ly
82个小时是多少天
朗行和朗逸新款,选哪个,大伙给点建议
联想g40-30笔记本pe读取不到硬盘
离心开关的原理及放不开怎么修理?
智齿会造成上颚前突么?如果造成了矫正能恢复
C语言 输入字符串,输出字符串,并以over为结
总睡你身后总能脱逃,总是轻易做到
本次配置≥8*ge,≥8*8g fc接口;什么意思
HR的要求是什么
推荐资讯
求大神!!京东商城装修——商品推荐模版的编
扩晶环 为什么设置内外环结构而不是上下环结
200(1加x)²等于242。。。。快,!过程
什么叫电牵引
农村自家宅基地盖房怎么买保险?
如图所示四种测量水温的方法,其中正确的是(
汽车之家99元代扣赚有用吗
非奇的奇的笔顺是什么
住小马场如何乘车去北京西站
ling ju拼出来是什么
6.14-2x=0.63+0.37怎么算
深圳大型正规针织厂有么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?