Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak mogę dołączyć/konkatenować dane BLOB do kolumny BLOB za pomocą polecenia SQL UPDATE w ORACLE

Musisz utworzyć tymczasowy obiekt blob za pomocą 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

Wtedy powinieneś być w stanie użyć go w oświadczeniu o aktualizacji:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak połączyć dwie różne wartości z jednej tabeli jednego klienta w jeden wiersz

  2. sql oracle - usuń zduplikowaną wartość

  3. SQL -- Wypełnianie dat, które nie dają wyników

  4. Wzorzec obserwatora w Oracle

  5. Jak wykonać procedurę z procedurą DBMS_SCHEDULER.CREATE_JOB