在客户端:
对于clob,blob型字段,不能直接使用INSERT的,但可先INSERT一个空记录,然后使用UPDATE。
如果你使用的是PB,则可以使用:UPDATEBLOB...
要注意:可以直接使用:INSERT INTO .. SELECT ....语句。
在服务器端,可以直接插入数据,但字符串的长度是有限制的,如果需要写入太大的字符串,可以调用ORACLE提供的DBM_BLOB包的有关功能。

解决方案 »

  1.   

    如果是BLOB字段,在ORACLE中手动更新是非常麻烦的
    一般都是通过第三方应用程序来更新它的内容的了,如用DELPHI、PB编写的前台程序来更新
    如果要在SQL中更新的话,要用ORACLE自带的脚本了
      

  2.   

    CREATE OR REPLACE PROCEDURE Example_1a IS
        dest_lob BLOB;
        src_lob  BLOB;
    BEGIN
        -- get the LOB locators
        -- note that the FOR UPDATE clause locks the row
        SELECT b_lob INTO dest_lob
            FROM lob_table
            WHERE key_value = 12 FOR UPDATE;
        SELECT b_lob INTO src_lob
            FROM lob_table
            WHERE key_value = 21;
        DBMS_LOB.APPEND(dest_lob, src_lob);
        COMMIT;
    EXCEPTION
        WHEN some_exception
        THEN handle_exception;
    END;CREATE OR REPLACE PROCEDURE Example_1b IS
        dest_lob, src_lob  BLOB;
    BEGIN
        -- get the LOB locators
        -- note that the FOR UPDATE clause locks the row
        SELECT b_lob INTO dest_lob
            FROM lob_table
            WHERE key_value = 12 FOR UPDATE;
        SELECT b_lob INTO src_lob
            FROM lob_table
            WHERE key_value = 12;
        DBMS_LOB.APPEND(dest_lob, src_lob);
        COMMIT;
    EXCEPTION
        WHEN some_exception
        THEN handle_exception;
    END;