请问如何用一标准SQL语句把数据库中某个表的数据导成文本文件?

0551 2003-11-27 02:56:59
是标准的SQL语句
可以在ORACLE下通用的
谢谢
...全文
47 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-11-28
  • 打赏
  • 举报
回复
是否你在本机操作的? SQL不在你操作的这台电脑上?

生成的文件在SQL服务器的d:\txt
0551 2003-11-28
  • 打赏
  • 举报
回复
没有,这个我总能确定

而且即使我新建一个DT.TXT的空文档,里边也依然没有数据

请问如何解决?
zjcxc 元老 2003-11-27
  • 打赏
  • 举报
回复
应该有吧.
D:\DT.txt
0551 2003-11-27
  • 打赏
  • 举报
回复
我这样写的语句
EXEC master..xp_cmdshell 'bcp "SSINSTAL" out D:\DT.txt -c -q -USUN -P'
但是怎么没看到我的D盘有相应的TXT文件啊?


NULL
开始复制...
1000 rows successfully bulk-copied to host-file. Total received: 1000
1000 rows successfully bulk-copied to host-file. Total received: 2000
NULL
已复制了 2417 行。
数据包的大小(字节): 4096
时钟时间(毫秒): 共 2804
NULL
zjcxc 元老 2003-11-27
  • 打赏
  • 举报
回复
没有通用的,可以在ORACLE下导出文本文件的.

除非写程序.
zjcxc 元老 2003-11-27
  • 打赏
  • 举报
回复
/*--实现数据导入/导出的存储过程

可以实现导入/导出 整个数据库/指定表 到文本文件

邹建 2003.07-----------------*/

/*--调用示例
导出调用示例
--导出指定表,这里指定导出表:地区资料 和 基本信息,文件名前缀为:zj
exec file2table 'zj','','','c:\zj','xzkh_sa','地区资料,基本信息'
--导出整个数据库到c:\docman目录下,无文件前缀
exec file2table 'zj','','','C:\docman\','xzkh_sa'

导入调用示例
--导入指定表,这里指定导出表:地区资料 和 基本信息,文件名前缀为:zj
exec file2table 'zj','','','c:\zj','xzkh_sa','地区资料,基本信息',0
--导入整个数据库从c:\docman目录下,无文件前缀
exec file2table 'zj','','','C:\docman\','xzkh_sa','',0
--*/

if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
drop procedure File2Table
go

create procedure File2Table
@servername varchar(200) --服务器名
,@username varchar(200) --用户名,如果用NT验证方式,则为空''
,@password varchar(200) --密码
,@path varchar(1000) --目录名+文件前缀,目录名必须以'\'结束,文件名自动用表名.txt
,@dbname varchar(500) --数据库名
,@tbname varchar(8000)='' --表名列表,如果不指定,则表示所有用户表
,@isout bit=1 --1为导出(默认),0为导入
as
declare @sql varchar(8000),@sql1 varchar(8000)
declare @tbstation int,@filestation int

--初始化数据处理语句
select @sql='bcp "'+@dbname+'..'
,@tbstation=len(@sql)+1
,@sql=@sql
+case when @isout=1 then '" out' else '" in' end
+' "'+@path
,@filestation=len(@sql)+1
,@sql=@sql
+'.txt" /c' +' /S"'+@servername
+case when isnull(@username,'')='' then ''
else '" /U"'+@username end
+'" /P"'+isnull(@password,'')+'"'

--数据导入/导出处理
--定义数据处理的游标
set @sql1='declare #tb cursor for select name from '
+@dbname+'..sysobjects where xtype=''U'''
+case when isnull(@tbname,'')='' then ''
else ' and name in ('''+replace(@tbname,',',''',''')+''')' end
print @sql1
exec(@sql1)
open #tb
fetch next from #tb into @tbname
while @@fetch_status=0
begin
select @sql1=stuff(@sql,@tbstation,0,@tbname)
,@sql1=stuff(@sql1,@filestation+len(@tbname),0,@tbname)
print @sql1
exec master..xp_cmdshell @sql1
fetch next from #tb into @tbname
end
close #tb
deallocate #tb
go
zjcxc 元老 2003-11-27
  • 打赏
  • 举报
回复
/*--实现数据导入/导出的存储过程

可以实现导入/导出 指定表 到文本文件

邹建 2003.07-----------------*/

/*--调用示例
导出调用示例
--导出指定表,这里指定导出表:地区资料
exec file2table 'zj','','','c:\zj.txt','xzkh_new..地区资料'

导入调用示例
--导入指定表,这里指定导入表:地区资料
exec file2table 'zj','','','c:\zj.txt','xzkh_sa..地区资料',0
--*/

if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
drop procedure File2Table
go

create procedure File2Table
@servername varchar(200) --服务器名
,@username varchar(200) --用户名,如果用NT验证方式,则为空''
,@password varchar(200) --密码
,@filename varchar(1000) --目录名+文件名
,@tbname varchar(500)='' --数据库..表名
,@isout bit=1 --1为导出(默认),0为导入
as
declare @sql varchar(8000)

set @sql='bcp "'+@tbname
+case when @isout=1 then '" out' else '" in' end
+' "'+@filename+'" /c' +' /S"'+@servername
+case when isnull(@username,'')='' then ''
else '" /U"'+@username end
+'" /P"'+isnull(@password,'')+'"'
exec master..xp_cmdshell @sql
go
txlicenhe 2003-11-27
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2341/2341997.xml?temp=.2739221
SQL语句导入导出大全

/** 导入文本文件
EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'

/** 导出文本文件
EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'

EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'

导出到TXT文本,用逗号分开
exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'


34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧