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

Lưu trữ các tệp JSON lớn vào Oracle DB

CLOB có giới hạn kích thước là 4G

Nhưng hạn chế ở đây là với UTL_HTTP.read_text trả về kết quả dưới dạng VARCHAR2 (bạn có một ẩn ý chuyển đổi tại đây).

Để dễ dàng truy xuất các đối tượng văn bản lớn từ web, bạn có thể cần HttpUriType.getClob

Nếu vì lý do nào đó bạn muốn gắn bó với UTL_HTTP , bạn sẽ phải lặp lại để đọc dữ liệu của mình theo từng đoạn. Đại loại vậy:

BEGIN
  ...
  l_clob           CLOB;
  l_text           VARCHAR2(32767);
BEGIN
  DBMS_LOB.createtemporary(l_clob, FALSE);

  ...
  l_http_request  := UTL_HTTP.begin_request(your_URI);
  l_http_response := UTL_HTTP.get_response(l_http_request);

  -- Loop to read data chunk by chunk up to the end
  BEGIN
    LOOP
      UTL_HTTP.read_text(l_http_response, l_text, 32766);
      DBMS_LOB.writeappend (l_clob, LENGTH(l_text), l_text);
    END LOOP;
  EXCEPTION
    WHEN UTL_HTTP.end_of_body THEN
      UTL_HTTP.end_response(l_http_response);
  END;

Xem http:// oracle-base.com/articles/misc/retrieving-html-and-binaries-into-tables-over-http.php vor các ví dụ khác nhau



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Điều chỉnh truy vấn SQL trong Oracle

  2. Cố gắng tìm các phương tiện rảnh giữa hai ngày thay đổi

  3. Sự khác biệt giữa pls_integer và binary_integer là gì?

  4. Cách truy vấn NHÓM THEO tháng trong năm

  5. Oracle Create View vấn đề