sql >> Databasteknik >  >> RDS >> Oracle

Lagra stora JSON-filer i Oracle DB

CLOB har en storleksgräns på 4G

Men begränsningen här är med UTL_HTTP. read_text som returnerar resultatet som en VARCHAR2 (du har en implicit konvertering här).

För att enkelt kunna hämta stora textobjekt från webben behöver du förmodligen HttpUriType.getClob

Om du av någon anledning vill hålla fast vid UTL_HTTP , måste du loopa för att läsa din data bit för bit. Något sådant:

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;

Se http:// oracle-base.com/articles/misc/retrieving-html-and-binaries-into-tables-over-http.php olika exempel



  1. Databasfel inträffade Felnummer:1062

  2. MySQL:Välj rader med mer än en förekomst

  3. Skapa en funktion i Postgresql som inte returnerar sammansatta värden

  4. Välj distinkta värden från 1 kolumn