有txt文件包含两列:data型和number型,在数据库中建表两列将txt数据插入表中,在程序中向数据库插入数据,正常步骤为:insert into 表value(...),一条一条的插入,但是如果数据行数超过几千行那将是一件超级慢的工作,如果上万行或更多,那就难以忍受了,请问有什么好方法和好语句能将txt数据更快的插入数据库么?
还有为什么从数据库中读数据那么快,为什么insert时要那么慢?我用的是orcle数据库
还有为什么从数据库中读数据那么快,为什么insert时要那么慢?我用的是orcle数据库
2:第三方工具PL/SQL DEV
1、用PL/SQL DEV的TOOLS工具下的“Text Importer”。
2、在“Data from Textfile”标签输入TXT文件(output.txt)。
3、在“Configuration”下面设置字段数、字段分隔符、行分隔符。
4、在“Data to Oracle”标签下选择需要导入的数据库的用户、表。
5、在“Fields”下设置TXT字段与目标表字段的对应关系与数据类型。
6、点击下面的“Import”即可。
先构造一个控制文件。拿你的打个比方如下:
你的源文件名:/home/user/test.txt;
源文件两个字段假设已"|"竖线作为分割
你要插入的表明 table_test(c1 number,c2 date)
构造一个控制文件:/home/user/test.ctl
ctl 文件内容如下:load data
infile '/home/user/test.txt'
truncate into table table_test -- truncate表示插入之前先清空表 append表示在源表记录上追加
fields terminated by '|'
(
c1,
c2 date "yyyymmddhh24miss",
)
然后执行此命令
sqlldr $ORA_USER/$ORA_PWD@$ORA_TNS control=/home/user/test.ctl direct=true看能否帮到你?
第三方工具PL/SQL DEV
1、用PL/SQL DEV的TOOLS工具下的“Text Importer”。
2、在“Data from Textfile”标签输入TXT文件(output.txt)。
3、在“Configuration”下面设置字段数、字段分隔符、行分隔符。
4、在“Data to Oracle”标签下选择需要导入的数据库的用户、表。
5、在“Fields”下设置TXT字段与目标表字段的对应关系与数据类型。
6、点击下面的“Import”即可。
可以在oracle里 写个过程 在过程里面使用utl_file对文本数据进行insert
如果效率要求很高的话 就要通过sqlloader了