2013-06-12 5 views
0

키워드 '최고'근처의 구문이 잘못은 java.sql.SQLException : 나는 절차를 저장 한

CREATE PROC dbo.TestSproc 

as 
select COUNT(*) from dbo.TestCase 

그것은 어떤 유용한 일을하지 않습니다하지만 최대 절전 모드

Query query = m_entityManager.createNativeQuery("CALL TestSproc()"); 
query.getSingleResult(); 

를 통해 그것을 호출 할 수 없습니다 java.sql.SQLException이 발생합니다 : 'top'키워드 근처의 구문이 올바르지 않습니다. 다른 절차에도 같은 문제가 있습니다.

이 절차에는 TOP 문이 없습니다. 어떻게 해결 될 수있는 아이디어가 있습니까?

+2

당신이'getSingleResult()'을 사용했기 때문에 –

+0

이 발생했습니다. getSingleResult()에 의해 실제로 발생했습니다. –

+0

DB가 Oracle 인 경우 "Top"이 작동하지 않습니다. RowNum을 사용합니다. 따라서 상위 1을 원하면 RowNum = 1입니다. 톱 10을 원하면 RowNum <11입니다. – Brian

답변

0

SQL Server를 사용하는 경우 CALL TestSproc() 대신 exec TestSproc을 사용하여 sproc을 실행 해보십시오. 나는 TOP 오류가 getSingleResult()에서 발생한 것 같아요. sproc 오류를 먼저 수정하십시오.

+0

exec를 사용하는 경우 java.sql.SQLException이 발생합니다. 행 위치 6에서 인식 할 수없는 SQL 이스케이프 'exec' –

+0

보십시오 : http://stackoverflow.com/questions/3180759/call-oracle-stored-procedure-using- 창조적 인 질의 –

관련 문제