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

Przechowuj duże pliki JSON w Oracle DB

CLOB mieć limit rozmiaru 4G

Ale tutaj ograniczeniem jest UTL_HTTP.read_text który zwraca wynik jako VARCHAR2 (masz ukrytą konwersja tutaj).

Aby łatwo pobierać duże obiekty tekstowe z sieci, prawdopodobnie potrzebujesz HttpUriType.getClob

Jeśli z jakiegoś powodu chcesz pozostać przy UTL_HTTP , będziesz musiał wykonać pętlę, aby odczytać porcję danych po porcji. Coś takiego:

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;

Zobacz http:// oracle-base.com/articles/misc/retrieving-html-and-binaries-into-tables-over-http.php lub różne przykłady



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle wstawia, jeśli wiersz nie istnieje

  2. Błąd instrukcji MERGE Oracle (ORA-30926)

  3. Wybierz wiersze, gdy wartość kolumny zmieni się między datą w Oracle?

  4. zamień wiersz na kolumny w oracle10g

  5. Głęboka aktualizacja Oracle SQL