ホームページ > データベース > mysql チュートリアル > Oracle 11g で INSERT SELECT を正しく使用して ORA-00936 を回避する方法

Oracle 11g で INSERT SELECT を正しく使用して ORA-00936 を回避する方法

DDD
リリース: 2024-12-23 20:12:10
オリジナル
956 人が閲覧しました

How to Correctly Use INSERT SELECT in Oracle 11g to Avoid ORA-00936?

Oracle 11G での SELECT クエリによるデータの挿入

Oracle 11G では、INSERT SELECT ステートメントにより、サブクエリを使用してあるテーブルから別のテーブルに効率的にデータを転送できます。ただし、構文が正しくないと、ユーザーに予期しないエラーが発生する可能性があります。

ユーザー クエリ:

ユーザーが、次のコマンドを使用してサブクエリの結果を新しいテーブルに挿入しようとしました。次のステートメント:

insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
ログイン後にコピー

しかし、ユーザーは次のことに遭遇しました。エラー:

SQL Error: ORA-00936: missing expression
ログイン後にコピー

解決策:

指定された構文が正しくありません。 Oracle の INSERT SELECT ステートメントには、他の SQL 言語で一般的に使用される VALUES キーワードは必要ありません。正しい構文は次のとおりです。

insert into table1 (col1, col2)
select t1.col1, t2.col2
from oldtable1 t1, oldtable2 t2
ログイン後にコピー

つまり、ステートメントの先頭から VALUES キーワードを削除するだけです。これにより、Oracle は INSERT SELECT クエリを正しく実行し、サブクエリの結果を table1 に挿入できるようになります。

以上がOracle 11g で INSERT SELECT を正しく使用して ORA-00936 を回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート