社区
Sybase
帖子详情
简单问题,请指教!!!!
nicholaz
2002-04-12 10:29:59
在linux下用c写一个程序,可以将文本文件导入oracle数据库,怎样来截取数据呢?详细点好吗?
...全文
29
12
打赏
收藏
简单问题,请指教!!!!
在linux下用c写一个程序,可以将文本文件导入oracle数据库,怎样来截取数据呢?详细点好吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shipatrioc
2002-04-16
打赏
举报
回复
如果文本文件中一行算一条记录,每行中有特殊字符来分割字段,你可以这样
(假设一条记录有两个字段,两字段间用"#"分割)
exec sql begin declare section;
char *ch1;
char *ch2;
exec sql end declare section;
char buffer[1024];
char* next;
FILE *fp;
fp = fopen("a.txt","r");
while(!feof(fp))
{
fgets(buffer,1024,fp);
buffer[strlen(buffer)]=0;
ch1 = strtok(buffer,"#");
ch2 = strtok(NULL,"#");
exec sql insert into ta_1(field1,field2) values(:ch1,:ch2);
}
shipatrioc
2002-04-16
打赏
举报
回复
如果文本文件中一行算一条记录,每行中有特殊字符来分割字段,你可以这样
(假设一条记录有两个字段,两字段间用"#"分割)
exec sql begin declare section;
char *ch1;
char *ch2;
exec sql end declare section;
char buffer[1024];
char* next;
FILE *fp;
fp = fopen("a.txt","r");
while(!feof(fp))
{
fgets(buffer,1024,fp);
buffer[strlen(buffer)]=0;
ch1 = strtok(buffer,"#");
ch2 = strtok(NULL,"#");
exec sql insert into ta_1(field1,field2) values(:ch1,:ch2);
}
flowerofwind
2002-04-16
打赏
举报
回复
nicholaz
你的问题可以通过调用oci实现,也就是用oci编写一个相当于sqlserver bcp的程序,至于怎么截取记录我觉得这个很简单,属于c/c++中简单的文本文件处理的问题,可以考虑一下函数,fgets(读取文件的一行),strtok(通过特定的分割符取出没个字段),然后通过oci绑定,执行就可以了
shipatrioc
2002-04-16
打赏
举报
回复
读取文件不就可以了!
exec sql begin declare section;
char ch1[10];
char ch2[10];
FILE *fp;
fp = fopen("a.txt","r");
while(!feof(fp))
{
fread((void *)ch1,10,1,fp);
fread((void *)ch2,10,1,fp);
exec sql insert into ta_1(field1,field2) values(:ch1,:ch2);
}
关键是看文件的格式
nicholaz
2002-04-15
打赏
举报
回复
TO shipatrioc(风吹雨打哗啦啦)
用什么方法截取数据存入宿主变量?
pcmax
2002-04-12
打赏
举报
回复
关注
nicholaz
2002-04-12
打赏
举报
回复
是可以把它写成procedure来执行,但是这样只能对服务器上的文本文件进行导入,我想知道如果是客户端的文本文件,怎么样导入呢?
shipatrioc
2002-04-12
打赏
举报
回复
我一般是把文本文件写成sql文件,在到sqlplus下执行.
还有更自动化的...
关注
ykliu1
2002-04-12
打赏
举报
回复
用SQL*LOADER吧,它是ORACLE专门用来解决此问题的
shipatrioc
2002-04-12
打赏
举报
回复
当然可以!
把文本文件的数据读到宿主变量里不久行了
nicholaz
2002-04-12
打赏
举报
回复
我的意思就是在文本文件中一行算一条记录,每行中有特殊字符来分割字段,
要怎样才能将一段一段数据取出存入变量中,可以用破pro*c实现吗?
我写了个procedure来执行,但是这样只能对服务器上的文本文件进行导入,我要是想对客户端导入该怎样做?
KingSunSha
2002-04-12
打赏
举报
回复
其实sqlldr做的就是你想要的功能,只是界面难看一点
我不明白你说的截取数据是什么意思,能解释一下吗?
简易魔方生成器 不足
请
指教
请
关注新版本
生成简易的魔方,能生成3——501阶的简易魔方,并保存起来,速度还可以,自己写的!不足
请
指教
!
请
关注新版本
请
关注新版本
请
关注新版本
请
关注新版本
C#做的简易图像编辑器
C#新手,简易的图片编辑器,有几个
简单
的功能,
请
多多
指教
!!!!!
简单
介绍阻抗计算方法分享
如果大家还有什么
问题
或者文档有什么错误,欢迎讨论与
指教
! 在计算阻抗之前,我想很有必要理解这儿阻抗的意义 分享给初学者的 一直有很多人问我阻抗怎么计算的. 人家问多了,我想给大家整理个材料,于己于 人都是个方便...
简单
的验证码实例(全部源代码)讲解很清楚
本人也在学ASP.NET做的不好
请
指教
!本验证码和本论坛(bbs.51aspx.com)的注册页面上的验证码很像!压缩包里是全部源代码!还有本人在代码里做了详细的注释!和我一样的新手
请
下,一起学习!高手
请
下,给我点意见。让...
Silverlight实现
简单
俄罗斯方块
\Silverlight实现
简单
俄罗斯方块!望
指教
!!!
Sybase
2,596
社区成员
25,614
社区内容
发帖
与我相关
我的任务
Sybase
Sybase相关技术讨论区
复制链接
扫一扫
分享
社区描述
Sybase相关技术讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章