1
나는 내 문제에서 스트럿츠와 동면 모드를 사용 중이다. I는 다음의 질의를 시도최대 절전 모드에서 열린 쿼리
String hql ="insert into "+
"OPENQUERY(OracleLinkedServer, \'SELECT * FROM report_access_log\') "+
"(CALLINGHOST, ACCESSTIMESTAMP, HTTPREQUESTMETHOD, ACCESSURL,"+
"HTTPRESPONSECODE, HTTPRESPONSETIMEMILLI, USERNAME, REPORTNAME, ID)"+
" values "+
"(:CALLINGHOST,:ACCESSTIMESTAMP,:HTTPREQUESTMETHOD,:ACCESSURL,:HTTPRESPONSECODE," +
":HTTPRESPONSETIMEMILLI,:USERNAME,:REPORTNAME,"+
"(select * from OPENQUERY(OracleLinkedServer,"+
"\'select SQ_RPT_ACC_LOG_ID.nextval from dual\')))";
Query query=session.createQuery(hql);
query.setString("CALLINGHOST", userLogReport.get(0).toString());
query.setDate("ACCESSTIMESTAMP", (Date)userLogReport.get(1));
query.setString("HTTPREQUESTMETHOD", userLogReport.get(2).toString());
query.setString("ACCESSURL", userLogReport.get(3).toString());
query.setString("HTTPRESPONSECODE", userLogReport.get(4).toString());
query.setInteger("HTTPRESPONSETIMEMILLI", (Integer)userLogReport.get(5));
query.setString("USERNAME", userLogReport.get(6).toString());
query.setString("REPORTNAME", userLogReport.get(7).toString());
insert into OPENQUERY(OracleLinkedServer, 'SELECT * FROM report_access_log')
(CALLINGHOST, ACCESSTIMESTAMP, HTTPREQUESTMETHOD, ACCESSURL,HTTPRESPONSECODE,
HTTPRESPONSETIMEMILLI, USERNAME, REPORTNAME, ID) values
(:CALLINGHOST,:ACCESSTIMESTAMP,:HTTPREQUESTMETHOD,:ACCESSURL,:HTTPRESPONSECODE:HTTPRESPONSE
TIMEMILLI,:USERNAME,:REPORTNAME,(select * from OPENQUERY(OracleLinkedServer,'select
SQ_RPT_ACC_LOG_ID.nextval from dual')))
내가 열 (CALLINGHOST이다 없음 79에서 검색어 구문 예외가 다음과 같이 콘솔에 인쇄 쿼리 ...이다
하지만 SQL에서 쿼리를 실행하면 쿼리가 실행됩니다. 쿼리는 다음과 같습니다.
insert into OPENQUERY(OracleLinkedServer, 'SELECT * FROM report_access_log')
(CALLINGHOST, ACCESSTIMESTAMP, HTTPREQUESTMETHOD, ACCESSURL,HTTPRESPONSECODE,
HTTPRESPONSETIMEMILLI, USERNAME, REPORTNAME, ID) values
('10.87.192.246','GET','/cci/bby/ImageViewer/viewImages.action','200',6,'su','Insert
Review',(select * from OPENQUERY(OracleLinkedServer,'select SQ_RPT_ACC_LOG_ID.nextval
from dual')))
문제를 해결하고 Java에서 실행하기위한 솔루션을 제공하십시오. 미리 감사드립니다.
감사 JB는 ... 내 옆에 감독은 ... :-) – rozar
죄송합니다 .. 나는 서로 문제가있어. 나는 session.createSQLQuery()를 사용했고 다음과 같은 결과를 얻었습니다. org.hibernate.exception.SQLGrammarException : 네이티브 대량 조작 쿼리를 실행할 수 없습니다. 나는 봤는데 우리가 session.createQuery()를 사용해야한다는 것을 알게되었습니다. 가능한 모든 솔루션 ??? 우선 JB의 노력에 감사드립니다. – rozar
쿼리, 해당 쿼리를 실행하는 데 사용 된 Java 코드 및 예외 스택 추적을 다른 질문에 게시하십시오. –