sql >> データベース >  >> RDS >> Oracle

大きなJSONファイルをOracleDBに保存する

    CLOB サイズ制限は4Gです

    ただし、ここでの制限は、UTL_HTTP.read_text 結果をVARCHAR2として返します (暗黙的 ここで変換)。

    Webから大きなテキストオブジェクトを簡単に取得するには、おそらく HttpUriType.getClob

    何らかの理由でUTL_HTTPを使い続けたい場合 、データをチャンクごとに読み取るには、ループする必要があります。そのようなもの:

    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;
    

    http://を参照してください。 oracle-base.com/articles/misc/retrieveing-html-and-binaries-into-tables-over-http.php さまざまな例をご覧ください



    1. django.db.utils.OperationalError:サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありません

    2. PostgreSQLデータベースの操作方法

    3. PHP+MySQLを使用したutf-8エンコーディングの問題

    4. 1つを除くすべてのフィールドを選択しますか?