클래스에서 SQL 문을 문자열로 작성하지 않으려면 동일한 패키지에 파일을 .sql
으로 배치하고 정적 생성자의 문자열로 내용을 읽으십시오. 그 이유는 SQL이 쿼리하는 ERP 시스템 때문에 SQL이 매우 복잡하기 때문입니다.Embedded SQL 리소스 파일을 읽을 수있는 명확한 방법이 있습니까?
비록 SQL 읽기 메커니즘이 전체 파일을 읽는 단순한 기능을하기 때문에이 파일의 주석은 줄 끝 부분에있을 경우 읽기를 실패하게 만들 수 있기 때문에이 방법에는 아무런 문제가 없습니다 여분의 공백을 제거하고 줄 바꿈을 제거합니다. 전체 주석 처리 된 행 (즉, --
으로 시작하는 행은 제거됨)
SQL 파일을 읽고 정리할 수있는 것이 있는지 이미 궁금해하고 있지만 필자는 파일을 읽고 주석이 달린 줄 등을 읽도록 단순 읽기를 향상시킬 수있었습니다.
아무 래도 유사 : http://stackoverflow.com/questions/660609/sql-parser-library-for-java – zeller
왜 물건을 정리해야합니까? 줄 바꿈을 제거하면 주석이 손상 될 수 있지만 단순히 데이터베이스 엔진에 쿼리를 전달하지 않는 것이 좋습니다. 그렇게하면 오류 메시지에 의미있는 줄 번호가 표시됩니다. – MvG
그것은 유효한 포인트 MvG입니다. 그러나 형식화 된 이러한 SQL 문 중 일부는 크기가 매우 커서 어떤 경우에는 100 행이 넘고 길이가'left join'과 중첩 된'case' 문으로 인해 공백이 많이 있습니다. 선택 "진술을 잘 정리하여 저장해야한다. 우리의 RDBMS (OpenEdge)는 또한 오류에 행 번호를 제공하지 않으며 오류에 줄 바꿈없이 실제로 모든 오류를 식별하는 것을 어렵게 만드는 모든 공백을 포함합니다. 다른 경우에도 귀하의 포인트는 유효합니다. –