2

JSPとサーブレット(IDE:Eclipse、コンテナ:Tomcat7.0、DB:Oracle 10)を使ってWebアプリケーションを開発しています。

1 つのクエリで 2 つのテーブルからデータを取得したい

クエリ:

query = "select * from PROTOCOL as a, ACTIONS as b where a.PROTOCOL_ID = b.PROTOCOL_ID";

しかし、アプリケーションを実行した後、次の例外が発生します。

java.sql.SQLException: ORA-00933: SQL command not properly ended

クエリに何か問題がありますか?

4

3 に答える 3

12

問題はキーワードASです。これは、セクションの列に使用されますSELECTFROMテーブルを指定する場所では無効です。

あなたが持っている

select * from PROTOCOL as a, ACTIONS as b

する必要があります

select * from PROTOCOL a, ACTIONS b...

オラクルのドキュメントから

t_alias

クエリを評価するためのテーブル、ビュー、マテリアライズド ビュー、またはサブクエリのエイリアスである相関名を指定します。このエイリアスは、選択リストがオブジェクト タイプの属性またはオブジェクト タイプのメソッドを参照する場合に必要です。相関名は、相関クエリで最もよく使用されます。クエリ全体のテーブル、ビュー、またはマテリアライズド ビューへのその他の参照は、このエイリアスを参照する必要があります。

例:

SELECT select_list 
    FROM table1 t_alias1 
    WHERE expr operator 
        (SELECT column_list 
            FROM table2 t_alias2 
            WHERE t_alias1.column 
               operator t_alias2.column); 
于 2013-01-02T12:02:34.533 に答える
2

wrong alias syntax. try the following:

query = "select * from PROTOCOL a,ACTIONS b where a.PROTOCOL_ID = b.PROTOCOL_ID";
于 2013-01-02T12:05:16.247 に答える