ORA-00604 ORA-12705
제 j2ee 웹 애플리케이션에 이 오류가 있습니다.
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:785)
oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:376)
oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)
oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:839)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)
org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)
이 프로젝트는 제 동료들의 PC에서 작동합니다.제 말은 이 프로젝트가 그들에게 효과가 있다는 것입니다. 하지만 제가 그들의 프로젝트 폴더를 요청하고 이클립스에서 가져왔을 때, 제가 실행했을 때 이 오류가 발생합니다.jar 파일이 이미 프로젝트 폴더와 함께 패키지되어 있습니다.
저도 hibernate를 사용하여 간단한 j2ee 프로젝트를 만들었지만 같은 오류가 있었습니다.DB 서버를 ping하여 PL/SQL developer를 사용하여 검색해 보았는데 문제가 없습니다.
다음을 시도해 보십시오.
- NLS_LANG 설정이 올바른지 확인합니다.윈도우에서는 아래의 레지스트리에 있습니다.
\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
. - Oracle 클라이언트 소프트웨어가 올바르게 설치되어 있는지 확인합니다.
- 해당 시스템에 여러 오라클 홈이 있는지 확인하십시오.그런 경우에는 활성화된 것을 찾아서 작동하는지 확인합니다.
- SQL*Plus가 설치되어 있는지 테스트합니다.SQL Developer는 자체 클라이언트 설치가 있기 때문에 작동합니다.
드라이버에 대해서는 다음 사이트를 확인하십시오.Oracle Instant Client.여기에서는 Oracle에 대한 JDBC 액세스에 필요한 최소 드라이버 설치에 대한 설명서를 확인할 수 있습니다.저는 사용하기 때문에 그것에 대해 잘 모릅니다.그물.
2편집 2:
다음 질문을 참조하십시오. JDBC 씬 드라이버에 대한 NLS_LANG 설정.사용자와 동일한 오류가 있으며 NLS LANG의 기본 로케일이 정의되지 않은 것이 문제입니다.인용문:
NLS_LANG 설정은 java.util에서 파생됩니다.로캘.따라서 연결하기 전에 이와 유사한 전화를 걸어야 합니다.
Locale.setDefault(Locale.<your locale here>);
문제를 해결하기 위해 Java 앱에 두 가지 매개 변수를 전달할 수 있다는 것을 알게 되었습니다.
-Duser.country=en -Duser.language=en
OS에 따라 환경 변수 수준에서 값을 구성할 수도 있습니다.
저도 같은 문제가 있었습니다.해결책은 국가와 언어를 추가하는 것이었습니다.sqldeveloper.conf
파일을 여십시오.
\sqldeveloper\sqldeveloper\bin\sqldeveloper.conf
그리고 다음을 추가합니다.
AddVMOption -Duser.language=en
AddVMOption -Duser.region=us
위의 것이 요령을 부립니다.
참조: http://forum.oradba.net/showthread.php?t=423&langid=1
의 경우 일 및 "환경"을 .System Format
English/US
.
솔루션을 찾았습니다. OS(윈도우 7)에서 지역 및 언어를 변경하고 오라클 지역 및 언어와 일치하는지 확인합니다.
Oracle JDBC 드라이버는 새 연결을 연 후 다음 문을 암시적으로 실행합니다.
ALTER SESSION SET NLS_LANGUAGE='language' NLS_TERRITORY='territory'
이 경우 Oracle XE 11g 및 JDBC 드라이버에 기본 언어/영역 매핑이 포함되어 문제가 발생했습니다. 'ru' 로케일은 Oracle EE에서만 지원되는 'CIS' 영역에 매핑되었지만 Oracle XE에는 'RUSA' 영역만 있었습니다.이 문제를 해결한 방법은 다음과 같습니다.
-Doracle.jdbc.territoryMap="ru=RUSSIA;RU=RUSSIA"
NLS_Language 옵션이 있습니다(기본값에는 문제가 없었습니다).
-Doracle.jdbc.languageMap="ru=RUSSIAN;RU=RUSSIAN"
고정: 클래스 oracle.sql.dll에서 가져온 상수 ru=RUSIC입니다.java jdbc 드라이버의 CharacterSetMetaData.
intellj로 컴파일하는 경우IDE 구성 모델에 있는 VM 옵션에 다음 옵션을 추가하는 것이 좋습니다.
AddVMOption -Duser.region=us.
처음 쿼리 실행:
select userenv('LANGUAGE') from dual;`
이것은 오라클에게 지역 및 언어를 제공할 것입니다.OS에서 지역 및 언어를 변경합니다. 둘 다 일치해야 합니다.
JAVA를 확인합니다.HOME 시스템 변수 및 해당 변수가 프로젝트 및 프로그램에서 사용 중인 버전과 동일한지 확인합니다.
컴퓨터의 지역 설정과 언어를 변경하는 것이 이 문제를 해결하는 데 도움이 되었습니다.저는 지역을 미국으로 바꾸고 영어(미국)를 언어로 바꿨습니다.
스프링 응용 프로그램을 실행하는 경우 로케일을 추가하면 됩니다.setDefault(로컬).영어); 본 수업에서.
public static void main(String[] args) throws Exception
{
Locale.setDefault(Locale.ENGLISH);
SpringApplication.run(ApplicationName.class, args);
}
언급URL : https://stackoverflow.com/questions/1629327/ora-00604-ora-12705
'sourcecode' 카테고리의 다른 글
Get-ChildItem 결과 수 제한 (0) | 2023.08.07 |
---|---|
오류 500.19 'oracle.manageddataaccess.client' 구성 섹션에 섹션 선언이 없으므로 읽을 수 없습니다. (0) | 2023.08.07 |
mariadb 또는 mysql에서 json 배열 내의 요소를 찾고 삭제하는 방법 (0) | 2023.08.07 |
swift의 고유한 배열 (0) | 2023.08.07 |
PL/SQL에서 레코드 표 사용 (0) | 2023.08.07 |