如何将文本文件导入到Oracle数据库中 ?

如何将文本文件导入到Oracle数据库中 ?,第1张

文本文件导入Oracle中需要用sqlloader的方式。

1、在数据库中创建相应的表。

如,文本文件内容为:

create table test

(id int,

name varchar2(10),

sex varchar2(10))

2、在电脑中某路径下编写ctrl文件,以c盘data目录为例,添加如下文本。如,被导入的文件名为load.txt

  load   data   

  infile   'load.txt'  --被导入文件名

  replace into   table   test     

  (id   char   terminated   by   ',',   

  name   char   terminated   by   ',',   

  sex   char   terminated   by   whitespace)

编写后,将文件保存成load.ctrl

3、然后打开命令提示符,并进入到文本文件和ctrl文件所在目录。

4、输入以下语句,并执行。

sqlldr userid=用户名/密码@数据库实例名   control=load.ctl   log=load.log

5、导入后,test表中数据如下:

连接代码如下:

int main()

{

EXEC SQL BEGIN DECLARE SECTION

char oc_passwd[101] /*数据库密码*/

char oc_userid[101] /*数据库用户名*/

char oc_dbname[101] /*数据库名*/

char oc_coad[101]

EXEC SQL END DECLARE SECTION

memset(oc_passwd, 0x00, sizeof(oc_passwd))

memset(oc_userid, 0x00, sizeof(oc_userid))

memset(oc_dbname, 0x00, sizeof(oc_dbname))

/*取数据库用户名*/

strcpy(oc_userid, "userid")

/*取数据库用户密码*/

strcpy(oc_passwd, "passwd")

/*取数据库名*/

strcpy(oc_dbname, "dbname")

EXEC SQL CONNECT :oc_userid

IDENTIFIED BY :oc_passwd

USING :oc_dbname

if (sqlca.sqlcode != 0)

{

printf("用户名[%s]密码[%s]数据库[%s]\n", oc_userid, oc_passwd, oc_dbname)

printf("连接数据库失败,sqlcode=%d\n", sqlca.sqlcode)

return -1

}

/*读table取coad字段*/

memset(oc_coad, 0x00, sizeof(oc_coad))

EXEC SQL SELECT coad

INTO :oc_coad

FROM table

WHERE 1=1

if (sqlca.sqlcode == NORECORD)

{

printf("查询无记录\n")

return -1

}

else if (sqlca.sqlcode != 0)

{

printf("查询失败,sqlcode=%d\n", sqlca.sqlcode)

return -1

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6828266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存