将 varbinary 数据保存到磁盘的脚本

2023-11-30

我有一些 varbinary 数据存储在 MS Sql Server 2005 的表中。是否有人有将查询作为输入的 SQL 代码(假设查询保证返回一列 varbinary)并将字节输出到磁盘(一个文件)每行?)我确信这个问题之前已经被问过一千次了,但谷歌搜索得出的大多是.net 解决方案。我想要一个 SQL 解决方案。


BCP 方法对我不起作用。它写入磁盘的字节无法反序列化回我存储的 .net 对象。这意味着磁盘上的字节不等于存储的字节。也许 BCP 正在写入某种标头。我不知道。

我找到了下面的代码here在文章的底部。效果很好!尽管它是用于存储 BMP 图像,但它适用于任何 varbinary。

DECLARE @SQLIMG VARCHAR(MAX),
    @IMG_PATH VARBINARY(MAX),
    @TIMESTAMP VARCHAR(MAX),
    @ObjectToken INT

DECLARE IMGPATH CURSOR FAST_FORWARD FOR 
        SELECT csl_CompanyLogo from mlm_CSCompanySettingsLocalizations

OPEN IMGPATH 

FETCH NEXT FROM IMGPATH INTO @IMG_PATH 

WHILE @@FETCH_STATUS = 0
    BEGIN
        SET @TIMESTAMP = 'd:\' + replace(replace(replace(replace(convert(varchar,getdate(),121),'-',''),':',''),'.',''),' ','') + '.bmp'

        PRINT @TIMESTAMP
        PRINT @SQLIMG

        EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
        EXEC sp_OASetProperty @ObjectToken, 'Type', 1
        EXEC sp_OAMethod @ObjectToken, 'Open'
        EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @IMG_PATH
        EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @TIMESTAMP, 2
        EXEC sp_OAMethod @ObjectToken, 'Close'
        EXEC sp_OADestroy @ObjectToken

        FETCH NEXT FROM IMGPATH INTO @IMG_PATH 
    END 

CLOSE IMGPATH
DEALLOCATE IMGPATH
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 varbinary 数据保存到磁盘的脚本 的相关文章

  • Sequelize mssql:按主键和限制排序

    我想运行一个使用主键对结果进行排序的查询 并限制返回结果的数量 例如 return Things findAll attributes id status otherField limit 2 order id DESC 构建查询时 会生成
  • 对于简单查询,SNIReadSync 的执行时间为 120-500 毫秒。我要寻找什么?

    我正在对 SQL Server 2005 执行一个简单的查询 protected static void InitConnection IDbCommand cmd cmd CommandText set transaction isola
  • 如何将 LEFT JOIN 限制为 SQL Server 中的第一个结果?

    我有一些 SQL 几乎可以做我想做的事情 我正在使用三个表 Users UserPhoneNumbers 和 UserPhoneNumberTypes 我正在尝试获取用户列表及其电话号码以供导出 数据库本身很旧并且存在一些完整性问题 我的问
  • 为什么 Clojure MySQL 查询结果中出现“M”

    我有一个返回一行的 Clojure 查询 下面是返回行 映射 的部分打印输出 employer percent 0 00M premium 621 44M 这两列在mysql表中分别是decimal 5 2 和decimal 7 2 为什么
  • 无法将方法组“Read”转换为非委托类型“bool”

    我正在尝试使用SqlDataReader检查条目是否存在 如果存在则返回ID 否则返回false 当我尝试编译时 出现错误 无法将方法组 Read 转换为非委托类型 bool 我一直在遵循在 VB 中找到的示例 但似乎翻译可能不正确 pri
  • 使用 Spring Boot 的 Flyway Core 给出错误 'delayedFlywayInitializer' 和 'entityManagerFactory' 之间的循环依赖关系

    我想在 SQL Server 数据库上导入一些数据 我使用的是 Spring Boot 2 3 4 我还使用 Hibernate 来生成表 我在pom中添加了flyway核心
  • 增量SQL查询

    我的应用程序有一组固定的 SQL 查询 这些查询以轮询模式运行 每 10 秒一次 由于数据库的大小 gt 100 GB 和设计 超级规范化 我遇到了性能问题 每当数据库上发生更改查询结果的 CRUD 事件时 是否可以对给定查询进行增量更改
  • SQL Server:复制表中的列

    将表中的列中的所有值复制到同一表中的另一列的最简单方法是什么 使用单个语句 如果列具有相同的数据类型 UPDATE
  • 插入并发问题-多线程环境

    我有一个问题 即使用完全相同的参数在完全相同的时间调用相同的存储过程 存储过程的目的是获取记录 如果存在 或创建并获取记录 如果不存在 问题是两个线程都在检查记录是否存在并报告错误 然后都插入新记录 在数据库中创建重复记录 我尝试将操作保留
  • 如何检查是否启用了更改跟踪

    我试图在运行之前确定我的数据库是否已启用更改跟踪ALTER DATABASE命令来启用它 我试图防止这些脚本多次运行时出现错误 我签到了sys databases and sys dm tran commit table但无法找到我要找的东
  • 如何在jOOQ中使用别名

    有人可以指导我如何在 jOOQ 中使用别名吗 我尝试查看 jOOQ 文档 但不清楚 如果可能 请提供示例 Both org jooq Table http www jooq org javadoc latest org jooq Table
  • 如何将特定行保留为查询(T-SQL)的第一个结果?

    我正在编写一个 SQL 查询来获取 Report Builder 3 0 中报表的参数列表 我需要在结果中添加一个带有值 All 的额外行 如下所示 SELECT All UNION SELECT DISTINCT Manager FROM
  • 如何在 postgreSQL 中从时间戳中减去/添加分钟

    我有以下场景 我有员工登记他们的上班 下班手续 但他们有10分钟的容忍度 我通过这种观点得到的最新条目 CREATE OR REPLACE VIEW employees late entries id created datetime en
  • sys.sql_modules 和 sys.objects 中的 object_name 和定义关系错误

    我运行了以下查询 SELECT sm object id v1 object name o type o type desc sm definition FROM sys sql modules sm CROSS APPLY VALUES
  • 在 BEFORE INSERT 触发器中使用 IF EXISTS (SELECT ...) (Oracle)

    我的代码不起作用 Oracle 告诉我创建触发器时出现构建错误 显然我无法获得有关构建错误的更准确信息 我以前确实没有做过很多SQL 所以我对语法不太熟悉 我有一种预感 Oracle 不喜欢我的 IF EXISTS SELECT THEN
  • T-SQL 按最旧日期和唯一类别选择行

    我正在使用 Microsoft SQL 我有一个表 其中包含按两个不同类别存储的信息和一个日期 例如 ID Cat1 Cat2 Date Time Data 1 1 A 11 00 456 2 1 B 11 01 789 3 1 A 11
  • SQL Server 到 er 模型

    是否有程序可以将 SQL Server 数据库图表转换为 er 模型 或者从 SQL Server 服务器创建数据库的 er 模型 在 SQL Server 中 Management Studio 中的每个数据库都有 数据库图 功能 您可以
  • 子查询与连接

    我重构了从另一家公司继承的应用程序的一个缓慢部分 以使用内部联接而不是子查询 例如 WHERE id IN SELECT id FROM 重构后的查询运行速度提高了约 100 倍 50 秒到 0 3 我预计会有改进 但谁能解释为什么它如此剧
  • 如何列出表中的所有列?

    对于各种流行的数据库系统 如何列出表中的所有列 对于 MySQL 请使用 DESCRIBE name of table 只要您使用 SQL Plus 或 Oracle 的 SQL Developer 这也适用于 Oracle
  • SQL 查询Where Column = '' 返回表情符号字符

    好的 我有一个包含三列的表 Id Key Value 我想删除所有行Value是空的 因此 我在删除之前编写了要选择的查询 Select from Imaging ImageTag where Value 到目前为止一切都很标准 现在这是奇

随机推荐

  • Payum Paypal Rest config_path

    我正在尝试使用 symfony 3 1 4 中的 payum 包来实现 paypal rest 支付 我需要在我的 Symfony 应用程序中运行 PayPal Plus 因此我读了这篇文章https github com Payum Pa
  • Restful PUT 方法的 ModelAttribute 未填充值 ( JSON )

    我正在使用 Spring MVC 构建一个完全安静的 Web 应用程序 当我有 PUT 方法时 我的 ModelAttribute 表单 bean 未填充 所有值均为 null 如果我使用 POST 方法 所有内容都会正确填充 我用 Pos
  • CMake - set_property 找不到 CACHE 变量

    免责声明 我知道this问题 然而 OP 的需求与我的不同 他真正想要的是将应用程序移植到 Linux 因此答案就在那一行 而不是回答我想知道的 错误的原因 我正在尝试按照中的说明在 CMake GUI 中创建一个下拉列表here and
  • 尝试在 C shell 中实现管道挂起并且未运行命令

    我正在尝试运行这个命令ps j more 我认为我已经正确设置了管道 但由于某种原因它只是挂起 我正在调用一个正在运行的 forkps j和第二个运行的叉子more并用管道将它们连接起来 由于某种原因 这仍然没有按预期工作 代码如下 def
  • 如何在 R 中使用 GenSA 函数进行数学约束

    我目前正在尝试使用模拟退火包 GenSA 来最小化以下功能 efficientFunction lt function v t v Cov Mat v 其中 Cov Mat 是从 4 个资产获得的协方差矩阵 v 是维度 4 的权重向量 我正
  • 通过在另一列中出现多个值来过滤组[重复]

    这个问题在这里已经有答案了 如同这个问题但又增加了皱纹 我想仅过滤在组的任何行的特定列中同时具有两个 或全部多个 值的行组 例如 假设我有这个数据框 df lt data frame Group LETTERS c 1 1 1 2 2 2
  • 当我关闭灯箱时停止播放视频

    我用这个建立了一个弹出窗口article看起来真的很好 这是我所做的
  • OpenCV 中的连接组件

    我正在寻找一个 OpenCV 函数 它可以找到连接的组件并对其执行一些任务 例如获取对象中的像素数 轮廓 像素列表等 OpenCV C 有没有类似于MatLab的regionprops的函数 从3 0版本开始 OpenCV有connecte
  • 不使用 sklearn 从数据构建混淆矩阵

    我正在尝试在不使用 sklearn 库的情况下构建混淆矩阵 我无法正确形成混淆矩阵 这是我的代码 def comp confmat currentDataClass 1 3 3 2 5 5 3 2 1 4 3 2 1 1 2 predict
  • 将值从一个对象复制到另一个对象(不同类型)

    我需要将一个对象的某些属性复制到另一个对象 但是 某些属性需要从十进制到整数的类型转换 我发现这个问题非常有用 将值从一个对象复制到另一个对象 但是 我不知道如何修改 Jon Skeet 和 Marc Gravell 的 MiscUtil
  • 了解递归以生成排列

    我发现递归 除了像阶乘这样非常直接的递归之外 非常难以理解 以下代码片段打印字符串的所有排列 谁能帮我理解一下 如何正确理解递归 void permute char a int i int n int j if i n cout lt lt
  • 在 docker 构建期间无法使用进程替换,因为 bash 进入 posix 模式

    在 Dockerfile 中 我想使用进程替换 RUN echo lt echo DATA DATA But docker build运行每个 RUN 命令 bin sh 显然正在运行sh导致 bash 切换到 POSIX 模式 该模式不允
  • 如何让 Range 返回其名称?

    Dim sampleRange as Range Set sampleRange Worksheet Range Cells 1 1 Cells 1 4 sampleRange Name Range1 MsgBox sampleRange
  • 如何从另一个 PHP 脚本异步运行一个 PHP 脚本? [复制]

    这个问题在这里已经有答案了 可能的重复 调用另一个 PHP 脚本并在其他脚本完成之前将控制权返回给用户 我需要从另一个 PHP 脚本异步运行一个 PHP 脚本 Script 1 Script 2 In script 1 I use syst
  • 如何在MySQL中选择列中具有最大值的行?

    其他可用答案都没有解决我的问题 我有一张这样的桌子 id cc count 1 HN 22 1 US 18 1 VN 1 2 DK 2 2 US 256 3 SK 1 3 US 66310 4 UA 2 4 US 263 6 FR 7 6
  • 如何说服借用检查器允许我缓存值?

    借用检查员打败了我 use std collections HashMap struct Cache cache Vec
  • 带自定义选择的静默安装程序

    目前我的安装程序需要用户在安装时选择他们想要使用的设置类型 假设有设置 A B 和 C 如果想在静默安装程序中进行此操作 有什么方法可以用吗 我正在使用安装盾 您可以设置公共财产从 msiexec exe 命令行进入 MSI 文件 如下所示
  • Angular使用ajax获取JSON数据

    如何通过ajax和角度获取json数据 我尝试了很多 但我的代码不起作用 我的代码
  • 推送期间发生内部异常:无法存储对象

    你好 我是 Git 新手 正在尝试设置服务器部分和客户端部分 在服务器端我有 ssh 访问权限和 Git 版本 1 5 在客户端 我使用 eGit 进行 Eclipse 我通过通常的方式在服务器端创建了 git repo git init
  • 将 varbinary 数据保存到磁盘的脚本

    我有一些 varbinary 数据存储在 MS Sql Server 2005 的表中 是否有人有将查询作为输入的 SQL 代码 假设查询保证返回一列 varbinary 并将字节输出到磁盘 一个文件 每行 我确信这个问题之前已经被问过一千