« AnySQL中的特色功能介绍(五) — 更新插入LONG/LOB »
AnySQL » http://www.anysql.net/anysql/anysql_new_feature05.html 2006-09-21在AnySQL中可以比较方便地操作LONG/LONG RAW类型, 将客户端文件插入或更新到这些字段中, 这是SQL*Plus没有办法做到的.
首建来建一个包括一个LONG字段的测试表, 如下所示:
ASQL> DESC T_LONG
NO# NAME NULLABLE TYPE
--- ---------------- -------- ----
1 COL1 LONG
接下来我们来插入一个Shell文件到一条新的记录中, 你也可以用Update语句来更新一个LONG/LONG RAW字段, 只需要声明一个CLOB(更新LONG)或BLOB(更新LONG RAW)类型的AnySQL宿主变量(Host Vairable), 并赋给一个文件名作为值, 在Insert/Update语句中直接引用就可以了, 如下所示:
ASQL> VAR P_LONG CLOB
ASQL> define p_long=otop
ASQL> insert into t_long values (:p_long);
1 rows affected.
ASQL> commit;
然后在AnySQL直接SELECT查看内容就可以了, 可以最多显示64KB的内容:
ASQL> select col1 from t_long;
COL1
------------------------------------------------------------
#!/bin/sh
if [ "A${ORACLE_HOME}A" = "AA" ]; then
echo "ORACLE_HOME environment variable not setted."
exit
fi
if [ "A${LD_LIBRARY_PATH}A" = "AA" ];then
LD_LIBRARY_PATH=/lib:/usr/lib
fi
if [ -d ${ORACLE_HOME}/lib32 ]; then
LD_LIBRARY_PATH=${ORACLE_HOME}/lib32:${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
else
LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${ORACLE_HOME}/lib64:${LD_LIBRARY_PATH}
fi
export LD_LIBRARY_PATH
dcba.bin -1 "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
1 rows returned.
AnySQL对于某些字符集的不文支持不好, 如US7ASCII, E8ISO8859P1等单字节字符集, 请在自已的库上验证后使用.


对于CLOB/BLOB同样有效, Oracle保持了兼容性. 我已经做过测试.