`
rs_zheng
  • 浏览: 13824 次
社区版块
存档分类
最新评论

在SQL Server的存储过程中实现对文本的操作

 
阅读更多

//在SQL Server的存储过程中实现对文本的操作
如,对一个文本文件c:\ttt.txt;
怎么实现从文本中读取一行,怎么实现写入一行呢?


DECLARE @object int
DECLARE @hr int
DECLARE @src varchar(255), @desc varchar(255)
Declare @tmp int
declare @msg varchar(3000)

SET @msg='Hello. MS SQL Server 2000. I Love you!!!'   --這字串將會被寫到SQL Server的安裝目錄下的Nipsan.Txt文件里面

/*  取得SQL Server的安裝路徑*/
declare @strPath  nvarchar(512)
Exec sp_MSGet_Setup_paths @strPath OUTPUT
Set @strPath=@strPath+'\Nipsan.Txt'   --組成文件名
 

--創建Scripting組件實例
EXEC @hr = sp_OACreate 'Scripting.FileSystemObject', @object OUT
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
    RETURN
END

--創建文件
EXEC @hr = sp_OAMethod @object, 'CreateTextFile', @tmp OUTPUT , @strPath
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object
    RETURN
END
--把@msg寫到文件里面去
EXEC @hr = sp_OAMethod @tmp, 'Write',NULL, @msg
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object
    RETURN
END
--關閉文件
EXEC @hr = sp_OAMethod @tmp, 'Close',NULL
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object
    RETURN
END
-----------寫文件操作Demo完成---------------------------------------------------------------

--打開文件
EXEC @hr = sp_OAMethod @object, 'OpenTextFile', @tmp OUTPUT ,@strPath
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object
    RETURN
END

SET @msg=''
--讀文件
EXEC @hr = sp_OAMethod @tmp, 'Read', @msg OUT,3000
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object
    RETURN
END
-----讀文件操作Demo完成


SELECT @msg AS RESULT






没有这么用过,不过可以提供几个方向的思路,从理论上说,SQL SERVER 能访问所有格式化的数据,要求文本文件有一定格式。
1、通过Microsoft.Jet.OLEDB.4.0连接成一个SERVER,再象访问一般连接数据库一样用SQL语句访问。以下一段从SQL SERVER帮助拷贝,是说明这个用法的。
2、用1法建立的连接SERVER,也可以通过OPENQUERY访问,具体可以看SQL SERVER的帮助。
3、非格式化的一些数据可以用xp_cmdshell调用DOS命令来写入文本文件,如这个小例子,写入一个变量到文本文件这段代码可以修改后嵌到你的存储过程里:
DECLARE @var varchar(100)
DECLARE @i int
DECLARE @cmd sysname
set @i=120
SET @var = '@i='+cast(@i as varchar(10))
SET @cmd = 'echo ' + @var + ' > VarOut.txt'
EXEC master..xp_cmdshell @cmd

分享到:
评论

相关推荐

    查看SQL SERVER 加密存储过程

    查看SQL SERVER 加密存储过程 查看SQL SERVER 加密存储过程

    Sqlserver2000经典脚本

    介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...

    Microsoft SQL Server 2005 Express Edition SP3

    未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...

    SQL Server中视图,存储过程,注入

    文章目录一....如何防止SQL注入(1)不要使用动态SQL(2)不要将敏感数据保留在纯文本中(3)限制数据库权限和特权(4)避免直接向用户显示数据库错误(5)使用Web应用程序防火墙(WAF)(6)将数据库更新为最新的可用

    VB.net中怎么访问存储过程

    使用SQL存储过程有什么好处  ■SQL存储过程执行起来比SQL命令文本快得多。当一个SQL语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它。

    sql加密过程视图查看

    查看sql加密存储过程

    SQL SERVER 2000开发与管理应用实例

    本书不但融合了作者在使用SQL Server 2000过程中遇到的各种常见问题和应用案例,还总结了作者几年来在CSDN 社区SQL Server版所解决的大量问题,面向实际项目需求,涉及不同类型的应用,能够多角度地引导读者学习相关...

    SQL Server2005基础教程

     5.4 在SQL Server中存储图像和大型文本   5.5 在SSMS中创建表   5.6 通过查询编辑器定义表   5.7 定义表:使用模板   5.8 创建模板和修改模板  5.9 ALTER TABLE命令  5.10 定义其余的表   5.11...

    sqlserver中查找所有包含了某个文本的存储过程

    上图存储过程调用了mup_GetA(我把和项目相关的命名都擦除掉了) 上图通过sqlserver 图形管理器自带的功能查看依赖于mup_GetA的对象。 结果有点雷人,居然没有列出mup_GetB 来(我使用的是sql server 2005) 下面是...

    sp_GenMerge:SQL Server存储过程生成带有数据的合并语句

    sp_GenMerge SQL Server存储过程生成带有数据的合并语句。 说明:快速有效地生成带有数据的MERGE语句,该语句将根据目标表中源中的源键执行INSERT / UPDATE / DELETE。典型用例: 为静态字典生成脚本,将.sql文件...

    SqlServer,Oracle,MySql数据库结构相互对比同步, 代码生成,Word表格生成Model,文本对比,格式化文本

    同时支持sqlserver,oracle,MySql ,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此工具可以告诉您哪个表结构有...

    SQLServer数据库设计规范.txt

    命名都采用英文字符,每个单词的首个字母要大写 2.7 SQL语句的编写规范 数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下: 关键字大写:在SQL语句的编写中,凡是SQL语句的关键字一律大写,如...

    文本分类聚类数据集sqlserver2008格式

    包含四个数据集,分别从english20newsgroup、reuters 中提取,分别为500条记录,各含五类,每类文档数目...从两个母数据库中提取,存储为sqlserver2008格式,可以直接附加,表结构如下!全部进行了标注,可以用来分类或者聚类!

    C#防SQL注入代码的三种方法

     三:尽可能的使用存储过程,安全性能高而且处理速度也快  四:屏蔽SQL,javascript等注入(很是主要的),对于每个文件写是不太可能的。所以要找到对所有文件起作用的办法。我在网上收集了以下3种方法  C#防SQL...

    存储过程的安全及性能优化

     扩展存储过程是SQL Server中的另一类存储过程,它是以其它语言编写的外部程序,是以动态链接库(DLL)形式存储在服务器上,最终SQLServer就可以动态加载并执行它们  编写好后使用SQLServer的固定角色sysadmin...

    中英翻译的数据库存储过程

    是文本文件,打开后,自己复制用咯,可以将大部分的汉字翻译为拼音,专门用于在数据库中将省市翻译为拼音

    sqlserver2000基础(高手也有用)

    9.4.1 在Access数据库中实现与SQL Server之间的数据交换 288 9.4.2 实现客户端其他OLE DB数据源与SQL Server之间的数据交换 289 9.4.3 在客户端实现SQL Server数据导入与导出处理的一些说明 289 9.5 在数据库...

    Sql语言学习全套-给力推荐

    SQLServer应用程序中的高级SQL注入.tx SQL_ppt sql语句.txt trancount.sql Trigger Test.sql trigger transaction.sql T_sql示例.sql UDF在层次型数据处理中的妙用.txt 《SQL 参考手册》中文版.chm 下线数...

    经典SQL脚本大全

    │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件属性.sql │ ├─第02章 │ │ 2.1 日期概念理解中的一些测试.sql │ │ ...

Global site tag (gtag.js) - Google Analytics