80分!!!急寻邹建等高手!!!

wangdehao 2004-12-22 07:49:13
公司需要每月将所有电话记录按地区分成17个表,如200412.0531,200412.0532等,然后再将表中的数据导出形成.txt文件,文件名跟对应的表名相同.请问怎么可以批量的把数据导出?用存储过程实现可行吗?
如果可行应怎样实现?
...全文
246 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiayouguo 2004-12-23
  • 打赏
  • 举报
回复
努力向各位大侠学习,,,,
zjcxc 2004-12-23
  • 打赏
  • 举报
回复
--参考这个:

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

/*--实现数据导入/导出的存储过程

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

--邹建 2003.07(引用请保留此信息)--*/

/*--调用示例

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

导入调用示例
--导入指定表,这里指定导出表:地区资料 和 基本信息,文件名前缀为:zj
exec file2table 'zj','','','c:\zj','xzkh_sa','地区资料,基本信息',0
--导入整个数据库从c:\docman目录下,无文件前缀
exec file2table 'zj','','','C:\docman\','xzkh_sa','',0
--*/
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
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)
exec master..xp_cmdshell @sql1,no_output
fetch next from #tb into @tbname
end
close #tb
deallocate #tb
go
sky125 2004-12-23
  • 打赏
  • 举报
回复
mark
xuzhenhua21 2004-12-23
  • 打赏
  • 举报
回复
友情关注一下!
wangdehao 2004-12-23
  • 打赏
  • 举报
回复
先顶一下,晚上才能看贴结贴,如果不行,还要麻烦各位老大啊
vinsonshen 2004-12-22
  • 打赏
  • 举报
回复
declare #cursor cursor for select [name] from 库名.dbo.sysobjects where 条件 --此条件根据你的表名规律进行取适当条件,以便一次性把所有你要导出的表名放进一个游标里循环执行来进行导出~~~
vinsonshen 2004-12-22
  • 打赏
  • 举报
回复
说明:
上面生成的文件保存在c盘根目录下,你可以适当更改,-U后面是访问数据库的帐号(上面用的是SQL的sa帐号),-P后面的是该数据库帐号的登陆密码
vinsonshen 2004-12-22
  • 打赏
  • 举报
回复
set nocount on
declare @name sysname
declare #cursor cursor for select [name] from 库名.dbo.sysobjects where 条件 --此条件根据你的表名规律进行取适当条件
open #cursor
fetch next from #cursor into @name
while @@fetch_status=0
begin
exec ('exec master..xp_cmdshell ''bcp 库名.dbo.'+@name+' out c:\'+@name+'.txt -c -t , -Usa -Pmypassword''')
fetch next from #cursor into @name
end
set nocount off
guanshiyu123 2004-12-22
  • 打赏
  • 举报
回复
导出到TXT文本,用逗号分开
exec master..xp_cmdshell ’bcp "库名..表名" out "d:\文件名.txt" -c -t ,-U sa -P password’





wangdehao 2004-12-22
  • 打赏
  • 举报
回复
有高手吗?自己顶
xiayouguo 2004-12-22
  • 打赏
  • 举报
回复
纠正:如果是ASP则先把数据库内容读到 客户端数据集里,然后用FSO创建TXT文件并把客户端数据集中的东西写到TXT文件里。当然,如果你的数据库表里的记录有非常多,就要考虑连接超时问题,不要一次读写太久。

这种做法只能针对本地机器,即数据库和程序都在一台机器上
xiayouguo 2004-12-22
  • 打赏
  • 举报
回复
如果是ASP则可以,先把数据库内容读到 客户端数据集里,然后用FSO创建TXT文件并把客户端数据集中的东西写到TXT文件里。当然,如果你的数据库是远程的、表里的记录有非常多,就要考虑连接超时问题,不要一次读写太久。
xiayouguo 2004-12-22
  • 打赏
  • 举报
回复
你用的是什么程序语言?你的数据库是远程的还是本地的??
wangminlikeapple 2004-12-22
  • 打赏
  • 举报
回复
顺便帮我看下我那个问题啊...大哥
代码转载自:https://pan.quark.cn/s/50df8825dc0d Tensilica Xtensa指令集架构手册是一份详尽阐述Xtensa指令集架构(ISA)的参考指南,它主要面向Tensilica公司所推出的处理器核心,尤其是LX106核,同时亦涵盖了ESP8266和ESP32等相关内容。该手册全面介绍了Xtensa处理器核心的指令集、配置选项、扩展能力以及将架构映射至硬件的详细情况。接下来将依据手册中所述的知识点进行深入解读。 ### Xtensa指令集架构(ISA) Xtensa指令集架构是Tensilica公司为其处理器产品设计的一套指令集,该指令集具备高度的可配置性和可扩展性。这一特性使得Xtensa ISA能够在不同的应用领域和硬件需求中进行个性化定制,以满足特定的功能与性能要求。 #### 可配置性(Configurability) Xtensa ISA的可配置性体现在用户可以根据实际需求对处理器的多个方面进行定制。这包括但不限于: - **指令集扩展**:用户可以根据特定的应用需求添加新的指令,从而提升处理特定任务的效率。 - **寄存器文件扩展**:根据应用需求,可以增加或优化处理器的寄存器数量和类型。 - **协处理器扩展**:通过集成特定的协处理器,可以将专门的计算任务卸载到协处理器上,从而提升整体性能。 #### 可扩展性(Extensibility) Xtensa ISA不仅可配置,还拥有卓越的可扩展性,它支持多种扩展,包括: - **状态扩展(State Extensions)**:允许处理器添加新的状态寄存器,以支持新的功能或增强现有功能。 - **指令扩展(Instruction Extensions)**:...
下载代码方式:https://pan.quark.cn/s/8779ceeac982 YOLOv5被认为是一种功能卓越且精确度高的目标检测系统,它在即时处理场景中展现出优越的性能。"基于YOLOv5的火灾检测"计划致力于运用这项尖端的计算机视觉方法,以达成对火焰和烟雾的有效辨识,进而起到防止及降低火灾事故的作用。在这个压缩文件里,用户能够获取到预先训练完成的模型,这表示使用者能够直接执行推理检测,无需从头开始训练模型。 我们现在将详细探讨YOLO(You Only Look Once)系统。YOLO是一种单阶段的目标检测方法,它将目标检测任务转化成回归问题,通过直接预测边界框和类别可能性来迅速识别图像中的物体。YOLOv5是这一系列的最新迭代,由Ultralytics团队研发,它在前几代的基础上进行了改进,包括更迅速的训练速率、更精准的检测以及更强的适应性。 YOLOv5的关键优化包含: 1. **数据增强**:应用了Mosaic数据增强技术,这是一种融合了随机缩放、翻转、裁剪及色彩调节的技巧,增强了模型的普遍适用性。 2. **更高效的架构**:运用了SPP-Block(Spatial Pyramid Pooling)和Path Aggregation Network (PANet)设计,提升了特征提取的效能和精确度。 3. **权重初始化**:采用了更优化的权重初始化策略,使模型在初始训练阶段就能更快地达到收敛。 4. **联合训练**:YOLOv5支持多尺度训练,即同步训练不同尺度的网络,以改善对小目标的检测效果。 5. **优化的损失函数**:使用了GIOU(Generalized IoU)损失函数,改进了边界框的定位。 针对火灾检测的应用,YOLOv...

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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