SQLSERVER,不使用BCP,把查询结果输出为txt文本文件的存储过程
由于有些服务器上,数据库由于服务器安全问题,禁用了cmd_shell 不能用BCP进行查询结果文本化输出。
所以特写了个存储过程。用于生成文本文件
QUOTED_IDENTIFIER
ANSI_NULLS
ALTER
PROCEDURE
stp_ExportDataToTxt
/*
***********************************************************************
* Powered by Tang Ren (R) *
* 2007-7-11 *
***********************************************************************
*/
@sqlstr
nvarchar
@path
nvarchar
文件保存文件夹
@fname
nvarchar
文件保存名字
Define variable
declare
@strPath
varchar
文件保存的地址
declare
@colsCount
declare
DECLARE
@object
DECLARE
SQLSERVER,不使用BCP,把查询结果输出为txt文本文件的存储过程由于有些服务器上,数据库由于服务器安全问题,禁用了cmd_shell 不能用BCP进行查询结果文本化输出。所以特写了个存储过程。用于生成文本文件SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOALTER PROCEDURE stp_ExportDataToTx
在
SQL
Server里可以调用DOS下的命令行工具
bcp
来实现把表里的数据或者
SQL
语句结果生成
文本文件
。
BCP
命令的参数格式: 代码如下:
BCP
{dbtable | query} {in | out | queryout | format} data
file
[-m maxerrors] [-f format
file
] [-e err
file
] [-F firstrow] [-L lastrow] [-b batchsize] [-n native type] [-c character type] [-w wide chara
select
A.STATUS,
(CASE BAPP.STATUS WHEN 1 THEN '喜欢' WHEN 2 THEN '不喜欢' WHEN 3 THEN '讨厌' END) AS STATUSSTR,
o
sql
-S"127.0.0.1" -U"sa" -P"sa" -d"run" -q"SELECT * FROM [kbss].[d].[list]" -o d:\aaa.
txt
或
o
sql
-S"127.0.0
import java.
sql
.Connection;
import java.
sql
.PreparedStatement;
import java.
sql
.ResultSet;
import java.
sql
.
SQL
Exception;
* 根据DBConfig.properties
文件
中内容 导出指定表到硬盘目录
public class ExportTable {
private String DBName = "
SQL
Server的
bcp
工具可以
使用
格式
文件
来对导入和导出数据进行限制。格式
文件
以纯
文本文件
的形式存在,分为一般格式和XML格式。用户可以手动编写格式
文件
,也可以
使用
bcp
命令根据表或视图自动生成格式
文件
。
在
bcp
格式
文件
中,每一行代表一个字段,
使用
制表符分隔字段属性。常见的字段属性包括字段序号、字段名称、数据类型、数据长度、字段分隔符等。例如,"2
SQL
CHAR 0 100 "\t" 2 Name
SQL
_Latin1_General_CP1_CI_AS"表示第2个字段的数据类型是
SQL
CHAR,长度为100,字段分隔符是制表符,字段名称为Name,字符集为
SQL
_Latin1_General_CP1_CI_AS。