社区
Sybase
帖子详情
简单问题,请指教!!!!
nicholaz
2002-04-12 10:29:59
在linux下用c写一个程序,可以将文本文件导入oracle数据库,怎样来截取数据呢?详细点好吗?
...全文
65
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做的就是你想要的功能,只是界面难看一点
我不明白你说的截取数据是什么意思,能解释一下吗?
初来乍到
请
多
指教
一位大一学生分享自己在WEB应用开发领域的学习经历及兴趣爱好,特别提到了对大天使之杖的喜爱,并表达了对未来学习的期待。
大虾
指教
!!!!
本文介绍了一种算法,该算法用于合并两个递增有序的表SA和SB,生成一个新的递增有序表SC。通过该方法可以有效地整合两个有序数据集。
初学es6写了个观察者模式,
请
多
指教
!!!!
本文介绍了一种常用的设计模式——观察者模式,并通过JavaScript代码实现了一个
简单
的观察者模式示例。该模式允许对象之间建立一对多的关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。
大家好 欢迎光临 我的博客 多多
指教
!!!!
博主欢迎大家光临其博客,并承诺会尽力帮助解决各位的
问题
。
Api关于php,关于php某些API的一些疑问,
请
大神
指教
博主在PHP编程中遇到API使用难题,如pack函数的适用场景不明,php://stdin等流的理解困难,以及加密算法中2进制转换的必要性。同时,对框架中的raw方法作用和事件监听机制感到迷惑。尽管已阅读手册,但实践中的应用仍需指导。
Sybase
2,598
社区成员
25,609
社区内容
发帖
与我相关
我的任务
Sybase
Sybase相关技术讨论区
复制链接
扫一扫
分享
社区描述
Sybase相关技术讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章