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

Oracle12.1でJSON列を更新する方法

    19cより前では、JSONドキュメントの値を変更する場合は、すべてを置き換える必要があります。

    create table t (
      doc varchar2(100)
        check ( doc is json ) 
    );
    
    insert into t values ('{
      "changeMe" : "to null",
      "leaveMe"  : "alone"
    }');
    
    update t
    set    doc = '{
      "changeMe" : null,
      "leaveMe"  : "alone"
    }';
    
    select * from t;
    
    DOC                                               
    {
      "changeMe" : null,
      "leaveMe"  : "alone"
    }  
    

    19cに到達し、json_mergepatchを使用する場合は注意してください 、属性をnullに設定します ドキュメントから削除します:

    update t
    set    doc = json_mergepatch ( 
      doc, 
      '{
        "changeMe" : null
      }');
    
    select * from t;
    
    DOC                   
    {"leaveMe":"alone"}   
    



    1. pgAdminを使用してPostgreSQLをリモートデータベースに接続できません

    2. R12.2のadopのカットオーバーフェーズで何が起こるか

    3. UTF-8文字のPostgres順序

    4. SQLite Random()のしくみ