NodeJs에서 오라클연동은 참 하기도 싫고 재미도 없다. 왜 단순하게 사용 할 수 있게 안만든건지...
일단..모듈부터 설치한다.
npm install oracledb
설치하고 나서 돌아다니는 소스코드를 수정하여 실행하여 보았다.
var oracledb = require('oracledb');
var config = {
user: "아이디",
password: "비밀번호",
connectString: "주소/xe"
}
oracledb.getConnection(config, (err, conn) =>{
todoWork(err, conn);
});
function todoWork(err, connection) {
if (err) {
console.error(err.message);
return;
}
connection.execute("select * from test", [], function (err, result) {
if (err) {
console.error(err.message);
doRelease(connection);
return;
}
console.log(result.metaData); //테이블 스키마
console.log(result.rows); //데이터
doRelease(connection);
});
}
function doRelease(connection) {
connection.release(function (err) {
if (err) {
console.error(err.message);
}
});
}
위 소스코드가 아무 이상없이 잘 동작하는 사람들은 본인 컴퓨터에 오라클이 설치되어 있거나, 오라클 클라이언트가 이미 적용되어 있기 때문이다. 하지만 오류를 만나는 경우가 대부분..
아무튼, 별거 없는 소스코드인데..실행하니 아래사진처럼 오류가 났다.
오류의 원인은 Node.js에서 제공하는 oracledb 이거 1개만으로는 동작하는 방식이 아니기 때문이다.
Node.js에서 제공하는 모듈 설치 말고도 또다른 작업을 해야된다..이럴꺼면 뭔가 한번에 설치 되도록 좀 해주지..
오라클에서 제공하는 오라클 클라이언트라는 프로그램을 다운로드 받아서 환경변수에 적용 해야되는 아주 귀찮은(?)일을 해야된다.
오라클 사이트로 가서 Oracle Instant Client Downloads 페이지에서 2가지 종류의 파일을 받아야 한다.
* 주소 : https://www.oracle.com/database/technologies/instant-client.html
1. SDK Package 라고 불리우는 압축 파일(파일 이름이 instantclient-sdk-..로 시작한다.)
2. Basic Package 라고 불리우는 압축 파일(파일 이름이 instantclient-basic-..로 시작한다.)
파일 명칭이 오라클 클라이언트 버전이 업데이트가 되면서 계속 바뀌므로 저런식으로 찾아주어야한다.
instantclient-sdk-..로 시작하는 파일 1개랑, instantclient-basic-..로 시작하는 파일 1개가 필요하다.
파일 2개를 받은 다음에 저 2개의 파일을 압축을 해제한다.
그리고 나서 압축이 풀린 2개의 디렉토리의 내용을 1곳으로 옮겨야한다. (더욱 귀찮아지고 있다..)
먼저 basic이라고 불리우는 곳 파일을 아래까지 이동해서 전부 복사하여 합칠 디렉토리에 옮겨둔다.
다음으로 sdk라고 불리우는 폴더로 가서 아래 까지만 이동해서 복사해서 합칠 곳으로 옮겨두자.
아래 사진은 해당 2개의 압축파일을 각각 복사해서 1곳의 디렉토리에 놓아둔 모습이다.
디렉토리를 어디까지 복사해야되는지 알려주는(?)곳이 없어서 뭘 합쳐야하나...하고 삽질좀 했었다.
다시한번 확인하자!!!
1. basic이라고 불리우는 압축파일을 받아 압축을 푼 이후에 해당 내용을 전부 복사하여 옮겨놓은다.
2. sdk라고 불리우는 파일을 압축을 푼 이후에 sdk까지만 이동해서 basic을 옮겨놓은 디렉토리에 붙여넣는다.
완료된 해당 디렉토리를 환경변수에 추가한다.
그리고나서 실행하면 잘된다!
이럴꺼면 그냥 압축파일1개만 받아서 되도록 만들지좀....
이후에 발생하는 오류의 대부분은 id 또는 비밀번호가 틀리거나, sid가 틀리거나, 오라클 외부접속이 허용되지 않거나등 3가지 정도의 문제라고 볼 수 있다.
오라클 연동이 안되는 경우 해결방법 내용을 정리하면,
1. npm을 활용해서 oracledb 모듈을 설치한다(npm install oracledb)
2. 오라클 클라이언트 파일 2개를 받는다.
* 주소 : https://www.oracle.com/database/technologies/instant-client.html
1) Basic Package 라고 불리우는 압축 파일
2) SDK Package 라고 불리우는 압축 파일
3. 받은 파일 2개를 1곳의 디렉토리에 압축을 풀어 놓는다.
1) Basic Package 라고 불리우는 압축 파일은 전부!
2) SDK Package 라고 불리우는 압축 파일은 sdk 이하 까지만!
4. 환경변수에 압축푼 디렉토리를 잡아준다.
'Node.js' 카테고리의 다른 글
NodeJs Redis 기본 함수들(노드js 레디스, Node.js redis) (0) | 2019.08.19 |
---|---|
NodeJs Redis 연동(NodeJs 레디스연동, zrangebyscore) (0) | 2019.08.16 |
NodeJs Mysql 연동(Nodejs Maria 연동, 노드js 마리아, 노드js mysql) (0) | 2019.08.14 |
Node.js Interceptor(인터셉터) (0) | 2019.07.18 |
Nodejs 에서 Mybatis 사용하기 (마이바티스, Node.js Mybatis) (10) | 2019.05.16 |
댓글