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

pl / sqlのネストされた表から列を更新するにはどうすればよいですか?

    構文は少しわかりにくいですが、基本的には、ネストされたテーブルをMULTISET演算子で操作する必要があります。

    update test 
    set marks = marks multiset union all numberlist(42) 
    where id_std = 1 
    

    これにより、既存のマークのセットが新しいセット(この場合は1つのセット)と連結されます。これが LiveSQLデモ(無料のOracle Technetアカウントが必要) です。 。

    このアプローチの利点は、一度に複数の値を簡単に追加できることです。

    update test 
    set marks = marks multiset union all numberlist(23, 69) 
    where id_std = 1 
    

    ネストされたテーブル列は、原則としては賢いですが、実際には扱いにくいものです。 SQLステートメントでそれらを使用すると、いくつかの醜いSQLにつながる可能性があります。それらを使用する場合は、すべてのMULTISET演算子に精通している必要があります。 詳細



    1. Mysql 1050エラーテーブルはすでに存在しますが、実際には存在しません

    2. MySQLで週末と休日を除く日付の違いをカウントする方法

    3. mysql_query()がSELECTステートメントでTRUEを返すのはなぜですか?

    4. PostgreSQLはWindowsで名前を処理します