내 코드에서 나는 다음과 같은 쿼리 문자열을 가지고 다음과 같이 네이티브 쿼리라고오라클 : 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
variable uniqueIdentifier에 어떤 값이 있다고 가정합니까? 그것이 문제가 될 수 있습니다. –