Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào tôi có thể nối / nối dữ liệu BLOB vào cột BLOB bằng lệnh SQL UPDATE trong ORACLE

Bạn cần tạo một đốm màu tạm thời bằng 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

Sau đó, bạn sẽ có thể sử dụng nó trong một tuyên bố cập nhật:

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. Kiểm tra ràng buộc Oracle SQL giữa 2 bảng

  2. Không phải là tháng hợp lệ trên một câu lệnh INSERT

  3. cách khôi phục cơ sở dữ liệu dự phòng từ nhật ký lưu trữ bị thiếu

  4. Hàm hoặc Thủ tục cho mệnh đề IN

  5. Làm thế nào tôi có thể duy trì một số nhận dạng duy nhất giữa nhiều bảng cơ sở dữ liệu?