728x90
오라클 계정 중 password version 에 10G 즉 verifier를 10g 버전으로 사용하는 계정이 있으면
thin 모드의 oracledb 라이브러리에선 이를 지원 하지 않는다.
즉, 암호 검증 유형 0x939는 Thin 모드의 node-oracledb에서 지원되지 않는다.
(아래 참고)
https://github.com/oracle/node-oracledb/issues/1584
클라이언트 다운로드 링크
https://www.oracle.com/kr/database/technologies/instant-client/winx64-64-downloads.html
Error: Error: NJS-116: password verifier type 0x939 is not supported by node-oracledb in Thin mode
at Object.throwErr (D:\dev\nodejs\node_modules\oracledb\lib\errors.js:693:10)
at AuthMessage.encode (D:\dev\nodejs\node_modules\oracledb\lib\thin\protocol\messages\auth.js:210:20)
at Protocol._encodeMessage (D:\dev\nodejs\node_modules\oracledb\lib\thin\protocol\protocol.js:109:20)
at Protocol._processMessage (D:\dev\nodejs\node_modules\oracledb\lib\thin\protocol\protocol.js:163:18)
at ThinConnectionImpl.connect (D:\dev\nodejs\node_modules\oracledb\lib\thin\connection.js:843:30)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async ThinPoolImpl.bgThreadFunc (D:\dev\nodejs\node_modules\oracledb\lib\thin\pool.js:455:11) {
code: 'NJS-116'
그래서 Thick 모드로 연결을 시도 하던중 기존 오라클 클라이언트 경로를 환경 변수 Path에 추가 해 주고 다음과 같이 경로를 잡아 주었는데,,
const oracle = require('oracledb');
//Thick mode 활성화
try {
// Oracle Instant Client의 경로 설정
oracle.initOracleClient({ libDir: 'C:\Oracle\client_19\instantclient_19_25' });
console.log('Thick mode initialized');
} catch (err) {
console.error('Error initializing Oracle client:', err);
}
아래와 같은 에러가 났다.
Error initializing Oracle client: Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See https://node-oracledb.readthedocs.io/en/latest/user_guide/installation.html for help
Node-oracledb installation instructions: https://node-oracledb.readthedocs.io/en/latest/user_guide/installation.html
You must have Windows 64-bit Oracle Client libraries in your PATH environment variable.
If you do not have Oracle Database on this computer, then install the Instant Client Basic or Basic Light package from
https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
A Microsoft Visual Studio Redistributable suitable for your Oracle client library version must be available.
at Object.initOracleClient (D:\dev\nodejs\node_modules\oracledb\lib\oracledb.js:783:20)
at Object.<anonymous> (D:\dev\nodejs\server.js:9:10)
at Module._compile (node:internal/modules/cjs/loader:1546:14)
at Object..js (node:internal/modules/cjs/loader:1689:10)
at Module.load (node:internal/modules/cjs/loader:1318:32)
at TracingChannel.traceSync (node:diagnostics_channel:315:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:218:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:170:5)
at node:internal/main/run_main_module:36:49 {
code: 'DPI-1047'
}
Oracle connection pool created
Server is running on http://localhost:3000
결국 클라이언트 전체 디렉터리를 프로젝트 폴더 아래에 복사하고 다음과 같이 경로를 잡아 주니 해결..!
const oracle = require('oracledb');
//Thick mode 활성화
try {
// Oracle Instant Client의 경로 설정
oracle.initOracleClient({ libDir: './instantclient_19_25' });
console.log('Thick mode initialized');
} catch (err) {
console.error('Error initializing Oracle client:', err);
}
728x90
반응형
'Dev > Javascript' 카테고리의 다른 글
[git] add, commit 취소 (0) | 2024.11.28 |
---|---|
[JavaScript] 화살표 함수 기본 (0) | 2024.11.27 |
[git] 커밋하고 푸시 (1) | 2024.11.23 |
[git] vscode commit push 무한 로딩 (0) | 2024.11.21 |
[Node.js] DB Daily Check 자동화 (1) 환경 설정 (0) | 2024.11.21 |