我有一个包含Blob字段的表来存储PDF或图像(jpeg,gif,...)文件。有一个Java EE应用程序可以做到这一点,它工作正常。
但是,有时我需要通过命令插入或更新Blob字段。
有没有简单的方法可以在没有编码的情况下执行此操作?我正在寻找一个纯粹的命令或某种工具。
DB2在AIX和Windows上是v9。
答案 0 :(得分: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”)一起使用。您所要做的就是cast the hexadecimal string to blob。
我给你的脚本将打印出正确的SQL查询以供测试。修复它以匹配您的DDL和其他要求。然后将echo命令更改为db2命令,您应该有一个工作实用程序:
./myscript myfile mytable myblob myblobsize