2

我有一个包含 Blob 字段的表,用于存储 PDF 或图像(jpeg、gif、...)文件。有一个 Java EE 应用程序可以执行此操作,并且运行良好。

但是,有时我需要通过命令插入或更新 Blob 字段。

有什么简单的方法可以在不编码的情况下做到这一点吗?我正在寻找一个纯粹的命令或某种工具。

DB2 在 AIX 和 Windows 上是 v9。

4

1 回答 1

1

不幸的是,我现在手头没有 DB2,但我想我可以为您指明正确的方向:

#!/bin/sh

FILENAME="$1"
HEX=`xxd -p $FILENAME | tr -d '\n'`

echo insert into $2 \($3\) values \(cast\(X\'$HEX\' as blob\( $4 \)  \) \);

这个想法是使用xxd创建文件的正确十六进制字符串。(AIX 安装了 xxd,除非它被破坏。)然后可以在 SQL 查询中将十六进制字符串与 db2 命令行处理器(“db2”)一起使用。您所要做的就是将十六进制字符串转换为 blob

我给你的脚本将打印出正确的 SQL 查询以供测试。修复它以匹配您的 DDL 和其他要求。然后将 echo 命令更改为 db2 命令,您应该有一个工作实用程序:

./myscript myfile mytable myblob myblobsize
于 2013-02-01T16:31:35.967 回答