免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2753 | 回复: 3
打印 上一主题 下一主题

PLSQL读取数据问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-08 16:44 |只看该作者 |倒序浏览
PLSQL中如何从读取的一行中按列给变量赋值。每列的数据不定长,用‘,’分隔。


in_file:=UTL_FILE.FOPEN(in_file_dir, file1.txt', 'r');
....

loop
        begin
                UTL_FILE.GET_LINE(in_file, temp);
                v_1:=第一列数据;
                v_2:=第二列数据;
                v_3:=第三列数据;

....


file1.txt
6SE3L8KD,4/6/2011 19:44:44,9
6SE3K07P,4/6/2011 19:44:48,13

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
2 [报告]
发表于 2011-04-08 20:28 |只看该作者
明看明白。

论坛徽章:
0
3 [报告]
发表于 2011-04-11 11:29 |只看该作者
PLSQL中如何从读取的一行中按列给变量赋值。每列的数据不定长,用‘,’分隔。


in_file:=UTL_FILE.FOP ...
luiszhu 发表于 2011-04-08 16:44



    windows写个bat、unix写个shell,脚本内容就是,随便找个什么工具先把文件导入表中再调你的sql。

   如果楼主非要走弯路,就自己写一个按分隔符截取的函数,使用instr,substr就能搞定。处理文件最好用C。

论坛徽章:
0
4 [报告]
发表于 2011-04-11 15:56 |只看该作者
windows写个bat、unix写个shell,脚本内容就是,随便找个什么工具先把文件导入表中再调你的sql。 ...
shine010 发表于 2011-04-11 11:29



    问题已解决。
。。。
                UTL_FILE.GET_LINE(in_file, temp);

                v_sn:=substr(temp,1,;

                v_date:=substr(temp,10,instr(temp,',',1,2));

                v_seq:=to_number(substr(temp,instr(temp,',',1,2)+1)+1);

。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP