ホームページ >データベース >mysql チュートリアル >Oracle 11g INSERT SELECT ステートメントの「ORA-00936: 式がありません」を解決するにはどうすればよいですか?

Oracle 11g INSERT SELECT ステートメントの「ORA-00936: 式がありません」を解決するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-29 19:24:16383ブラウズ

How to Resolve

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。