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

長い文字列のOracleCLOBまたはBLOBを挿入する方法

    リテラルは暗黙的にvarcharであるため、 v_long_textに割り当てることはできません。 varcharの最大リテラルより大きい値(plsqlの最大varchar長は32767です)。

    連結を使用できます:

    DBMS_LOB.APPEND(v_long_text, 'very long string');
    DBMS_LOB.APPEND(v_long_text, 'yet another long string');
    

    もちろん、MYTABLE_NAMEの列タイプはCLOBであると想定しています

    更新: サンプルコード:

    DECLARE
        v_long_text CLOB;
    BEGIN
       DBMS_LOB.CREATETEMPORARY(v_long_text,true);
       DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
       DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
       DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
       DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
       DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
       DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
       DBMS_LOB.APPEND(v_long_text, dbms_random.string('U', 20000));
    
        INSERT INTO my_table VALUES (v_long_text);
    END;
    


    1. 値が変更された場合にのみデータベースに挿入するにはどうすればよいですか?

    2. プログラムによるSQLコードの生成

    3. PostgreSQLでEXCLUDEを使用して隣接/重複するエントリを防止する

    4. SQLAlchemyでSQLクエリの印刷をきれいにフォーマットするにはどうすればよいですか?