search
HomeDatabaseMysql Tutorialsql 二进制文件的导入导出

/*--bcp-二进制文件的导入导出 支持image,text,ntext字段的导入/导出 image适合于二进制文件;text,ntext适合于文本数据文件 注意:导入时,将覆盖满足条件的所有行 导出时,将把所有满足条件的行也出到指定文件中 此存储过程仅用bcp实现 邹建 2003.08----------

   /*--bcp-二进制文件的导入导出

  支持image,text,ntext字段的导入/导出

  image适合于二进制文件;text,ntext适合于文本数据文件

  注意:导入时,将覆盖满足条件的所有行

  导出时,将把所有满足条件的行也出到指定文件中

  此存储过程仅用bcp实现

  邹建 2003.08-----------------*/

  /*--调用示例

  --数据导出

  exec p_binaryIO 'zj','','','acc_演示数据..tb','img','c:zj1.dat'

  --数据导出

  exec p_binaryIO 'zj','','','acc_演示数据..tb','img','c:zj1.dat','',0

  --*/

  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_binaryIO]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

  drop procedure [dbo].[p_binaryIO]

  GO

  Create proc p_binaryIO

  @servename varchar (30),--服务器名称

  @username varchar (30), --用户名

  @password varchar (30), --密码

  @tbname varchar (500), --数据库..表名

  @fdname varchar (30), --字段名

  @fname varchar (1000), --目录+文件名,处理过程中要使用/覆盖:@filename+.bak

  @tj varchar (1000)='', --处理条件.对于数据导入,如果条件中包含@fdname,请指定表名前缀

  @isout bit=1 --1导出((默认),0导入

  AS

  declare @fname_in varchar(1000) --bcp处理应答文件名

  ,@fsize varchar(20) --要处理的文件的大小

  ,@m_tbname varchar(50) --临时表名

  ,@sql varchar(8000)

  --则取得导入文件的大小

  if @isout=1

  set @fsize='0'

  else

  begin

  create table #tb(可选名 varchar(20),大小 int

  ,创建日期 varchar(10),创建时间 varchar(20)

  ,上次写操作日期 varchar(10),上次写操作时间 varchar(20)

  ,上次访问日期 varchar(10),上次访问时间 varchar(20),特性 int)

  insert into #tb

  exec master..xp_getfiledetails @fname

  select @fsize=大小 from #tb

  drop table #tb

  if @fsize is null

  begin

  print '文件未找到'

  return

  end

  end

  --生成数据处理应答文件

  set @m_tbname='[##temp'+cast(newid() as varchar(40))+']'

  set @sql='select * into '+@m_tbname+' from(

  select null as 类型

  union all select 0 as 前缀

  union all select '+@fsize+' as 长度

  union all select null as 结束

  union all select null as 格式

  ) a'

  exec(@sql)

  select @fname_in=@fname+'_temp'

  ,@sql='bcp "'+@m_tbname+'" out "'+@fname_in

  +'" /S"'+@servename

  +case when isnull(@username,'')='' then ''

  else '" /U"'+@username end

  +'" /P"'+isnull(@password,'')+'" /c'

  exec master..xp_cmdshell @sql

  --删除临时表

  set @sql='drop table '+@m_tbname

  exec(@sql)

  if @isout=1

  begin

  set @sql='bcp "select top 1 '+@fdname+' from '

  +@tbname+case isnull(@tj,'') when '' then ''

  else ' where '+@tj end

  +'" queryout "'+@fname

  +'" /S"'+@servename

  +case when isnull(@username,'')='' then ''

  else '" /U"'+@username end

  +'" /P"'+isnull(@password,'')

  +'" /i"'+@fname_in+'"'

  exec master..xp_cmdshell @sql

  end

  else

  begin

  --为数据导入准备临时表

  set @sql='select top 0 '+@fdname+' into '

  +@m_tbname+' from ' +@tbname

  exec(@sql)

  --将数据导入到临时表

  set @sql='bcp "'+@m_tbname+'" in "'+@fname

  +'" /S"'+@servename

  +case when isnull(@username,'')='' then ''

  else '" /U"'+@username end

  +'" /P"'+isnull(@password,'')

  +'" /i"'+@fname_in+'"'

  exec master..xp_cmdshell @sql

  --将数据导入到正式表中

  set @sql='update '+@tbname

  +' set '+@fdname+'=b.'+@fdname

  +' from '+@tbname+' a,'

  +@m_tbname+' b'

  +case isnull(@tj,'') when '' then ''

  else ' where '+@tj end

  exec(@sql)

  --删除数据处理临时表

  set @sql='drop table '+@m_tbname

  end

  --删除数据处理应答文件

  set @sql='del '+@fname_in

  exec master..xp_cmdshell @sql

  go

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
winreagent是什么文件夹winreagent是什么文件夹Aug 26, 2022 am 11:23 AM

winreagent是在系统更新或升级的过程中创建的文件夹;该文件夹中通常包含临时文件,当更新或升级失败时,系统将通过还原先前创建的临时文件来回滚到执行更新或升级过程之前的版本。

baidunetdiskdownload是什么文件夹baidunetdiskdownload是什么文件夹Aug 30, 2022 am 10:45 AM

baidunetdiskdownload是百度网盘默认下载文件的文件夹;百度网盘是百度推出的一项云存储服务,只要下载东西到百度网盘里,都会默认保存到这个文件夹中,并且可跨终端随时随地查看和分享。

二进制算法怎么算二进制算法怎么算Jan 19, 2024 pm 04:38 PM

二进制算法是一种基于二进制数的运算方法,其基本运算包括加法、减法、乘法和除法。除了基本运算外,二进制算法还包括逻辑运算、位移运算等操作。逻辑运算包括与、或、非等操作,位移运算包括左移和右移操作。这些操作都有对应的规则和操作数的要求。

如何使用C语言将二进制转换为十六进制?如何使用C语言将二进制转换为十六进制?Sep 01, 2023 pm 06:57 PM

二进制数以1和0表示。16位的十六进制数系统为{0,1,2,3…..9,A(10),B(11),……F(15)}为了从二进制表示转换为十六进制表示,位串id被分组为4位块,从最低有效侧开始称为半字节。每个块都替换为相应的十六进制数字。让我们看一个示例,以清楚地了解十六进制和二进制数字表示。001111100101101100011101 3  E  5  B&nb

EDVAC有哪两个重大的改进EDVAC有哪两个重大的改进Mar 02, 2023 pm 02:58 PM

EDVAC的两个重大的改进:一是采用二进制,二是完成了存贮程序,可以自动地从一个程序指令进到下一个程序指令,其作业可以通过指令自动完成。“指令”包括数据和程序,把它们用码的形式输入到机器的记忆装置中,即用记忆数据的同一记忆装置存贮执行运算的命令,这就是所谓存贮程序的新概念。

.torrent是什么文件.torrent是什么文件Aug 30, 2022 am 10:52 AM

“.torrent”文件是BT种子文件;该格式的文件被BitTorrent协议所定义,BitTorrent协议的种子文件可以保存一组文件的元数据,装有BT下载必须的文件信息,bt种子的作用就相当于HTTP下载里的URL链接。

lenovosoftstore是什么文件夹lenovosoftstore是什么文件夹Aug 22, 2022 pm 03:14 PM

lenovosoftstore是联想电脑专用文件夹,是系统自带的文件夹,用于管理PDA和电源等一系列东西;系统文件是指存放操作系统主要文件的文件夹,一般在安装操作系统过程中自动创建并将相关文件放在对应文件夹中。

Golang如何读取二进制文件?Golang如何读取二进制文件?Mar 21, 2024 am 08:27 AM

Golang如何读取二进制文件?二进制文件是以二进制形式存储的文件,其中包含了计算机能够识别和处理的数据。在Golang中,我们可以使用一些方法来读取二进制文件,并将其解析成我们想要的数据格式。下面将介绍如何在Golang中读取二进制文件,并给出具体的代码示例。首先,我们需要使用os包中的Open函数打开一个二进制文件,这将返回一个文件对象。然后,我们可以使

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.