我有一个包含 Blob 字段的表,用于存储 PDF 或图像(jpeg、gif、...)文件。有一个 Java EE 应用程序可以执行此操作,并且运行良好。
但是,有时我需要通过命令插入或更新 Blob 字段。
有什么简单的方法可以在不编码的情况下做到这一点吗?我正在寻找一个纯粹的命令或某种工具。
DB2 在 AIX 和 Windows 上是 v9。
我有一个包含 Blob 字段的表,用于存储 PDF 或图像(jpeg、gif、...)文件。有一个 Java EE 应用程序可以执行此操作,并且运行良好。
但是,有时我需要通过命令插入或更新 Blob 字段。
有什么简单的方法可以在不编码的情况下做到这一点吗?我正在寻找一个纯粹的命令或某种工具。
DB2 在 AIX 和 Windows 上是 v9。
不幸的是,我现在手头没有 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