2017-07-14 42 views
0

JDBCを介して以下のクエリをOracle DBで実行しようとしていますが、例外がスローされています。例外は次のとおりです。JDBC-java.sql.SQLException:ORA-00933:SQLコマンドが正しく終了していません

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

変更する必要があることをご提案ください。

String questionQuery = "SELECT PCN_SURVEY_DEFINITION.ID, PCN_SURVEY_DEFINITION.NAME, PCN_QUESTIONS.ID, PCN_QUESTIONS.SURVEY_ID, PCN_QUESTIONS.LABEL, " 
       + "PCN_QUESTIONS.TYPE, PCN_QUESTIONS.REQUIRED, PCN_QUESTIONS.COMMENTS, PCN_QUESTIONS.DISPLAY_ORDER " 
       + "FROM PCN_SURVEY_DEFINITION, PCN_QUESTIONS " 
       + "WHERE PCN_SURVEY_DEFINITION.ID = PCN_QUESTIONS.SURVEY_ID " 
       + "AND PCN_SURVEY_DEFINITION.NAME=? " 
       + "ORDER BY PCN_QUESTIONS.DISPLAY_ORDER ASC"; 
+0

文の呼び出しで完全なコードを共有してください変更することなく、私のための問題を解決しました。 –

答えて

1

あなたは疑問符で何をしていますか?他のテーブルの列名をここに入れることを意図したのでしょうか? ORDER BYの前のもの?または、後で準備されたステートメントを使用していますか?適切にどこから始め、どこで終了するために( ")で"AND PCN_SURVEY_DEFINITION.NAME=? "

"WHERE PCN_SURVEY_DEFINITION.ID = PCN_QUESTIONS.SURVEY_ID " + "AND PCN_SURVEY_DEFINITION.NAME=? " + "ORDER BY 
1

正しい条件をWHERE句と引用符をチェック

"WHERE PCN_SURVEY_DEFINITION.ID = " + PCN_QUESTIONS.SURVEY_ID + " AND PCN_SURVEY_DEFINITION.NAME=? " + "ORDER BY PCN_QUESTIONS.DISPLAY_ORDER ASC"; 
+0

'PCN_QUESTIONS.SURVEY_ID'はJava変数ではないと思います。これはクエリ内のJOIN条件です。 –

1

Oracleはセンターサポートしません:テスト目的のために、一時的にこの条件を削除してください。疑問符変数バインディングのOracleの使用については、 "?"。 ":名" または ":1"

https://docs.oracle.com/cd/B10501_01/appdev.920/a96584/oci05bnd.htm

+0

これは間違っています。疑問符は、Oracle over JDBCの有効なバインド・プレースホルダです。 –

0

私は何かsimilaを持っていましたrと(私は春のブートを使用していますので)私のapplication.propertiesファイルに次のプロパティを追加しなければならなかった、これは私のSQLのいずれかが

spring.jpa.database=oracle 
関連する問題