现有一个数据表格式如下:
recnum numeric(9)
riqi datetime(8)
line_num char(10)
.
.
ave_current float(8)
.
.
over3ma int(4)
.
.
clbj bit(1)
主要问题是数据量太大,数据表(用的是SQL数据库)中有纪录5000000多行
现求一方法把数据表中的数据导出到.txt文件中,还可以把.txt内容导入相对应的数据表中
recnum numeric(9)
riqi datetime(8)
line_num char(10)
.
.
ave_current float(8)
.
.
over3ma int(4)
.
.
clbj bit(1)
主要问题是数据量太大,数据表(用的是SQL数据库)中有纪录5000000多行
现求一方法把数据表中的数据导出到.txt文件中,还可以把.txt内容导入相对应的数据表中
把数据表中的纪录一行一行的保存到一个String型中,然后再一行一行的写入到.txt文件中
写入到.txt文件中的格式如下:
589|2003-1-25 4:07:00|0002|0059|0001|0.54|0.56|0|0|-5|85|0|6.4|0.25|0|0
从.txt导入到数据表中是这样的方法
首先是从.txt文件读出一行行的 Readln(MyText,AssistStr),然后分解后存入到一个TStringList中,在转化成string型一行行的存入String中
用insert into history_data Values('+CostStr+')一行行的插入到数据表中
这样做如果数据量小,是可以的,可是现在的数据量太大了,需要的时间很长,而且运行当中还可能出错
请各位大侠帮帮我
bcp 实用工具在 Microsoft® SQL Server™ 2000 实例和数据文件之间以用户指定的格式复制数据。语法
bcp {[[database_name.][owner].]{table_name | view_name} | "query"}
{in | out | queryout | format} data_file
[-m max_errors] [-f format_file] [-e err_file]
[-F first_row] [-L last_row] [-b batch_size]
[-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6]
[-q] [-C code_page] [-t field_term] [-r row_term]
[-i input_file] [-o output_file] [-a packet_size]
[-S server_name[\instance_name]] [-U login_id] [-P password]
[-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"]
There Tell You How To Do!
Good Luck!!
insert into tablename
select 589,'2003-1-25 4:07:00',0002,0059,0001,0.54,0.56,0,0,-5,85,0,6.4,0.25,0,0 union
select 590,'2003-1-25 4:07:00',0002,0059,0001,0.54,0.56,0,0,-5,85,0,6.4,0.25,0,0前面只是舉了一個例子,不一定正確,但道理是一樣的
樓主可以試著一次性提交1000筆,或者是更多,不過對於SQL語句的長度,我還不知道有沒有這方面的限制,樓主可以試一下,盡量一次性提交多一些,從而減少數據庫編譯SQL語句所花的時間