私のコードではI次のクエリ文字列を持っている:以下のようにネイティブクエリで呼び出されオラクル:ORA-00911:無効な文字
private static final String QUERY = format(
" SELECT t2.address " +
" FROM schema.table1 t1 ," +
" schema.table2 t2 ," +
" schema.table3 t3 ,"+
" schema.table4 t4 " +
" WHERE t2.uniqueIdentifier =:%s " +
" AND t1.parent_id = t2.parent_alias " +
" AND t3.company_id = t1.company_id " +
" AND t3.record_age = t2.recordAge " +
" AND t2.name = 'stubName' " +
" AND t4.pln_foi_id = t2.recordAge ",uniqueIdentifier);
:
public String getAddress(String uniqueIdentifier){
String result = null;
try {
Query query = persistence.entityManager().createNativeQuery(QUERY);
query.setParameter("uniqueIdentifier", uniqueIdentifier);
result = query.getSingleResult();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
私はこのクエリをテストする場合
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
Caused by: java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
このエラーの原因は何ですか?クエリ文字列やコード内で問題の原因となることはありません。
't2.uniqueIdentifier =:%s'これは正しくありません。 – XING
これを拡張するか、答えをください – java123999
可変のuniqueIdentifierにはどのような値が入っていますか?それは問題を引き起こしている可能性があります –