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

OracleでIDを返すselect句を使用して挿入ステートメントを記述します

    それはうまくいきません。 RETURNING 句は、あなたがしているように使用することはできません。つまり、

    insert into t (id, my_pk)
    select some_id, your_function from ...
    returning into v_output
    

    ただし、VALUESを挿入すると機能します 、as

    insert into t
    values (id, your_function)
    returning my_pk into v_output
    

    つまり、そのコードを書き直すか、回避策を確認する必要があります。 insert..selectで戻る で説明されています 記事(エイドリアンビリントンによって書かれました)。

    ところで、通常のOracleシーケンスはあなたの目的に合っていませんか?ギャップがないわけではありませんが、シンプルで効果的です。ソリューションを使用して、大量のデータを挿入するときのパフォーマンスに注意してください。

    ところで#2、あなたの関数の最後の行の目的は何ですか? N_VALUEを使用することはありません。



    1. MySQLは、月の各日の日付に該当する行の数を取得します

    2. SQLServerデータベースをAzureSQLデータベースに移行する方法

    3. (1つのテーブル)行を挿入

    4. プリペアドステートメントを使用しないのはいつですか?