sql >> データベース >  >> RDS >> Oracle

ORACLEでSQLUPDATEコマンドを使用してBLOB列にBLOBデータを追加/連結するにはどうすればよいですか。

    <を使用して一時的なblobを作成する必要があります。 code> DBMS_LOB.createtemporary

    SQL> CREATE OR REPLACE FUNCTION CONCAT_BLOB(A IN BLOB, B IN BLOB) RETURN BLOB IS
      2     C BLOB;
      3  BEGIN
      4     dbms_lob.createtemporary(c, TRUE);
      5     DBMS_LOB.APPEND(c, A);
      6     DBMS_LOB.APPEND(c, B);
      7     RETURN c;
      8  END;
      9  /
    
    Function created
    

    その後、更新ステートメントで使用できるようになります:

    SQL> CREATE TABLE t (a BLOB, b BLOB, c BLOB);
    
    Table created
    
    SQL> INSERT INTO t VALUES
      2     (utl_raw.cast_to_raw('aaa'), utl_raw.cast_to_raw('bbb'), NULL);
    
    1 row inserted
    
    SQL> UPDATE t SET c=CONCAT_BLOB(a,b);
    
    1 row updated
    
    SQL> SELECT utl_raw.cast_to_varchar2(a),
      2         utl_raw.cast_to_varchar2(b),
      3         utl_raw.cast_to_varchar2(c)
      4  FROM t;
    
    UTL_RAW.CAST_TO_VARCHAR2(A UTL_RAW.CAST_TO_VARCHAR2(B UTL_RAW.CAST_TO_VARCHAR2(C
    -------------------------- -------------------------- --------------------------
    aaa                        bbb                        aaabbb 
    


    1. PostgreSQL-トランザクションブロック外のコードからVACUUMを実行する方法は?

    2. 2つの列の合計の最大値を選択する

    3. Oracle Autoincrement機能:11.2のトリガーまたはOracle JDBC CallableStatement?

    4. Oracleクライアントのインストールエラー-パスが長すぎます