AnySQL中的特色功能介绍(五) -- 更新插入LONG/LOB

    在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等单字节字符集, 请在自已的库上验证后使用.

留言 (1)

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

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • What time are you going to leave for the airport tomorrow?
  • 你明天打算什么时候去机场?
  • Is he coming to dinner?
  • 他回来吃饭吗?
  • I'm going to the bookstore. Will you go with me?
  • 我要去书店, 你和我去吗?
  • They're going to discuss it at the meeting next Friday.
  • 他们将在下周五的会上讨论这个问题.
  • I'll be waiting for you at the restaurant this time tomorrow.
  • 我明天这时候在餐馆等你.