SQL数据库与文本文件之间的大批量数据互导

原创 2005年04月30日 17:11:00

**********************************************
数据库:
sql2000

服务器名: SqlServerName
数据库名:  DataBaseName
表    名:  d_t11
用 户 名:  sa
密    码:  sa
运行环境:  sql2000查询分析器

数据文件:

以下示例为文本文件
如果你要导入或导出到*.doc,*.dat类型的数据文件中,只需将文件名更改即可.
文件路径及文件名:  c:/mrfu.txt

**********************************************

**********************************************
1.sql中数据与文本文件互导
**********************************************

相邻字段之间用空格隔开
EXEC master..xp_cmdshell ' bcp "DataBaseName..d_t11" out "c:/mrfu.txt" -c -S"SqlServerName" -U"sa" -P"sa" '    或
EXEC master..xp_cmdshell 'bcp "Select * from DataBaseName..d_t11" queryout "c:/mrfu.txt" -c -S"SqlServerName" -U"sa" -P"sa" '

相邻字段之间用逗号或其它符号隔开(在-c后添加-t 并在-t后添加你要使用的分隔符)
Exec master..xp_cmdshell ' bcp "DataBaseName..d_t11" out "c:/mrfu.txt" -c -t, -S"SqlServerName" -U"sa" -P"sa" '    或
EXEC master..xp_cmdshell 'bcp "Select * from DataBaseName..d_t11" queryout "c:/mrfu.txt" -c -t,, -S"SqlServerName" -U"sa" -P"sa" '

大容量复制选项 bcp 实用工具开关 BULK INSERT 子句
字符模式格式 -c    DATAFILETYPE = 'char'
字段终止符   -t    FIELDTERMINATOR
行终止符     -r    ROWTERMINATOR


--本例从指定的sql数据库中导入员工详细信息,该文件使用竖杠 (|) 字符作为字段终止符,使用 |/n 作为行终止符。
EXEC master..xp_cmdshell 'bcp "Select * from DataBaseName..d_t11" queryout "c:/mrfu.txt" -c -t"|" -r"|/n" -S"SqlServerName" -U"sa" -P"sa" '

--将数据从数据文件(c:/mrfu.txt)复制到 SQL Server中
--delete from d_t11
select * from d_t11                    
BULK INSERT DataBaseName..d_t11
FROM 'c:/mrfu.txt'
WITH
(
      FIELDTERMINATOR = '|',
      ROWTERMINATOR = '|/n'
)
select * from d_t11   或

EXEC master..xp_cmdshell 'bcp " DataBaseName..d_t11" in "c:/mrfu.txt" -c -t"|" -r"|/n" -S"SqlServerName" -U"sa" -P"sa" '

**********************************************
相关说明:
1.xp_cmdshell
以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。授予非管理用户执行 xp_cmdshell 的权限。
2.bcp
实用工具在SQL2000数据库和数据文件之间以用户指定的格式复制数据。
语法
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]"]
**********************************************


两台oracle数据库相互导数据

案例说明:    有A,B两台oracle数据库,都为10g,现在有一个A数据库中one表的几条数据要插入到B数据库中的one表?在网上查阅了一下,可以通过在A上建立dblink,当然在B机上建立也是...
  • lky5387
  • lky5387
  • 2009年10月27日 16:54
  • 3703

Oracle导入导出大批量数据的一种做法

最近要把Oracle数据库的数据,导出另外一台电脑上面的Oracle,而且表空间、用户什么的都不一样,而且还有BLOB字段。数据大概有5万条左右。我大概的做法是先导出导入表,再导出导入数据。因为有BL...
  • lhq13400526230
  • lhq13400526230
  • 2013年10月19日 02:46
  • 3105

oracle导入大数据、数据库之间迁移数据简单方法

oracle导入数据的方式比较多:主要介绍
  • skate29
  • skate29
  • 2014年07月18日 20:39
  • 4631

面试题:大批量数据高效插入数据库表

原文:http://yakyang.com/?p=592 题目:将一批10万数据通过系统(Java语言)导入数据库表,并要求实时看到导入的进度,请设计出系统方案,重点要考虑导入效率! 这个题场景...
  • yakyang
  • yakyang
  • 2017年08月10日 19:57
  • 1445

SQLServer不同数据库之间的导入导出

例如:sqlserver上有两个库。一个yliso,另一个是新建的yliso70。要把yliso数据库里面表结构极其数据导入到新建的yliso70库里。操作:以数据库超级管理员进入服务器(1)在yli...
  • derpvailzhangfan
  • derpvailzhangfan
  • 2008年04月30日 13:32
  • 2083

postgresql 两个表之间快速导数据

do $$ declare vRecord record; declare vCurId bigint; declare vIndex bigint; declare vCount bigin...
  • kmblack1
  • kmblack1
  • 2017年04月08日 13:27
  • 514

SQL中相同两表,不同数据库之间进行数据库互导

insert into db1.dbo.tbl(x1,x2)select x1,x2 from db2.dbo.tb1  where  db2.dbo.tb1 and db1.dbo.tb1.... ...
  • chenguang79
  • chenguang79
  • 2007年06月01日 10:06
  • 1446

SQL Server与Excel数据互导

  SQL Server与Excel数据互导 [ 2006-9-25 21:...
  • Garrision
  • Garrision
  • 2006年09月28日 08:39
  • 879

SQL Server与Excel数据互导

从SQL Server中导入/导出 Excel 的基本方法  /*=================== 导入/导出 Excel 的基本方法 ===================*/  从Excel...
  • sjhtt
  • sjhtt
  • 2008年01月16日 12:50
  • 325

数据库插入大量数据性能测试——批处理+事务VS普通插入

测试:sql server插入10000行数据 关键代码(批处理+事务): public void insertUser() { String sql = "insert into...
  • a125138
  • a125138
  • 2012年09月07日 17:59
  • 2758
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL数据库与文本文件之间的大批量数据互导
举报原因:
原因补充:

(最多只允许输入30个字)