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

SQL Developerで生の変数長が長すぎるエラーを回避するにはどうすればよいですか?

    RAW 2000バイトに制限されています。データがそれより長い場合は、CLOBに保存する必要があります 次に、CLOBを変換します BLOBに 残念ながら、これはstring_to_rawよりも少し複雑です。 働き。文字列全体をCLOBに割り当てることができると仮定すると、このようなものが機能します 文字列の長さが32676バイト未満である限り機能する変数。それより長い場合は、CLOBに書き込む必要があります 分割してからBLOBに変換します 。

    declare
      l_blob        blob;
      l_clob        clob := rpad('{"foo": {"id": "1", "value": "2", "name": "bob"}}',3200,'*');
      l_amt         integer := dbms_lob.lobmaxsize;
      l_dest_offset integer := 1;
      l_src_offset  integer := 1;
      l_csid        integer := dbms_lob.default_csid;
      l_ctx         integer := dbms_lob.default_lang_ctx;
      l_warn        integer;
    begin
      dbms_lob.createTemporary( l_blob, false );
      dbms_lob.convertToBlob( l_blob,
                              l_clob,
                              l_amt,
                              l_dest_offset,
                              l_src_offset,
                              l_csid,
                              l_ctx,
                              l_warn );
      update json_data
         set data = l_blob;
    end;
    /
    


    1. JPA-EclipseLink-デフォルトスキーマを変更する方法

    2. Transactionscopeスロー例外このプラットフォームは、接続オブジェクトを開いている間、分散トランザクションをサポートしていません

    3. CのPostgreSQL配列アクセスがPL/pgSQLよりもはるかに高速なのはなぜですか?

    4. PostgreSQLの日付に週を追加