1
다음 쿼리를 실행하여 조건부로 임시 테이블을 삭제하려고합니다. JPA 2의 기본 쿼리에 여러 개의 문을 가질 수 있습니까?
String dropSql = "BEGIN EXECUTE IMMEDIATE 'DROP TABLE " + tmpTblName + "';" +
" EXCEPTION" +
" WHEN OTHERS THEN" +
" IF SQLCODE!=-942 THEN" +
" RAISE;" +
" END IF;" +
" END";
그리고이 같은 기본 쿼리로 실행합니다
JPA.em().createNativeQuery(dropSql)
.executeUpdate();
그러나, JPA 나를 못하게 또는 오히려, 오라클 DB는하지 않습니다. 분명히; 어떻게 든 도망 가거나 잘못 해석 될 수 있습니다.
Caused by: java.sql.SQLException: ORA-06550: line 1, column 120:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
; <an identifier> <a double-quoted delimited-identifier>
The symbol ";" was substituted for "end-of-file" to continue.
내 목표를 달성하기 위해 별도의 쿼리를 사용하여 살아야합니까? 아니면 이에 대한 트릭이 있습니까?
당신 말이 맞습니다. jpa가 일관성이없는 것처럼 보입니다. 단 하나의 문장이있을 때는 끝에 세미콜론이 있어서는 안됩니다. – Rythmic
실제로 SQL은 그것을 필요로하지 않지만 PL/SQL은 그것을 필요로합니다. –