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

OracleID列とselectに挿入

    以下のクエリは機能すると思いますが、テストしていません!

    INSERT INTO Test (b)
    SELECT * FROM
    (
       SELECT 'z' FROM dual
       UNION ALL
       SELECT 'zz' FROM dual
    );
    

    わからない、それが何らかの形で役立つかどうか。

    の場合、GENERATED ALWAYS AS IDENTITY Oracleは内部的にシーケンスのみを使用します。また、一般的なシーケンスのオプションはこれにも適用されます。

    NEXTVALは、次に使用可能なシーケンスをフェッチするために使用され、明らかに疑似列です。

    以下はOracleからのものです

    CURRVALは使用できません およびNEXTVAL 次の構成で:

    • DELETEのサブクエリ 、SELECT 、またはUPDATE ステートメント
    • ビューまたはマテリアライズドビューのクエリ
    • DISTINCT演算子を使用したSELECTステートメント
    • GROUPBY句またはORDERBY句を含むSELECTステートメント
    • SELECT 別のSELECTと組み合わされたステートメント UNIONを使用したステートメント、INTERSECT 、またはMINUS セット演算子
    • SELECTステートメントのWHERE句
    • CREATETABLEまたはALTERTABLEステートメントの列のデフォルト値
    • CHECK制約の条件

    subquery およびSET 上記の操作ルールはあなたの質問に答えるはずです。

    そして、NULLの理由で、pseudocolumn (例:NEXTVAL)は、SET操作または上記の他のルールで使用されます。Oracleは複数の選択を組み合わせて実際にそれらを抽出できなかったため、出力はNULLです。

    以下のクエリを見てみましょう

    select rownum from dual
    union all 
    select rownum from dual
    

    結果は

    ROWNUM
    1
    1
    



    1. Oracleで負の値を正に変更する方法は?

    2. mysqlでグローバルsql_modeを設定する

    3. 成功したMySQLDELETEは何を返しますか? DELETEが成功したかどうかを確認するにはどうすればよいですか?

    4. OracleはNumberデータ型の末尾のゼロを格納しますか?