ホームページ >データベース >mysql チュートリアル >Oracle 11g INSERT SELECT ステートメントの「ORA-00936: 式がありません」を解決するにはどうすればよいですか?
Oracle 11G の INSERT SELECT 文での「ORA-00936」エラーのトラブルシューティング
「ORA-00936: 式が欠落しています」エラーOracle 11G で INSERT SELECT ステートメントを実行するときに発生する可能性があります。この問題を解決するために、特定のケースを分析してみましょう。
問題:
SQL ステートメントがサブクエリからテーブルにデータを挿入しようとしています:
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
サブクエリは、個別に実行すると正しく動作し、oldtable1 と oldtable2 の 2 つのテーブルから行を取得します。ただし、INSERT ステートメントのデータ ソースとして実行すると、「ORA-00936: 式がありません」エラーが発生します。
解決策:
エラーの原因は次のとおりです。 INSERT ステートメントの構文が正しくありません。 SELECT ステートメントを使用してターゲット テーブルにデータを設定する場合、VALUES キーワードは必要ありません。正しい構文は次のとおりです。
insert into table1 (col1, col2) select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
VALUES 部分を省略すると、INSERT ステートメントはサブクエリを正しく実行し、選択したデータを table1 に設定します。
以上がOracle 11g INSERT SELECT ステートメントの「ORA-00936: 式がありません」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。