我有一个包含 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