programing

Oracle driver를 통해 Nodejs로 원격 Oracle DB에 연결

goodsources 2023. 9. 23. 22:31
반응형

Oracle driver를 통해 Nodejs로 원격 Oracle DB에 연결

안녕하세요. 원격 Oracle 테스트 DB에 연결하는 방법을 찾고 있는데 Java에 대한 경험이 없습니다.그래서 당신의 도움을 받을 수 있다면 영원히 감사할 것입니다.

연결하려는 원격 테스트 데이터베이스가 있고 이전 스타일 SID와 jdbc 연결되어 있습니다.다음 링크에 따라: https://github.com/oracle/node-oracledb/blob/master/doc/api.md#notjdbc, 다음과 같이 tnsnames.또는 연결을 넣을 파일을 만들어야 합니다.

tnsnames.ora:

appDB =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
   (CONNECT_DATA =
     (SID = ORCL)
   )
 )

그런 다음에 노드 server.js 파일에서 참조해야 합니다.

server.js:

const oracledb = require('oracledb');
oracledb.getConnection(
  {
    user          : process.env.ORACLE_USER,
    password      : process.env.ORACLE_PASSWORD,
    connectString : "appDB"
  },
  function(err, connection)
  {
    if (err) {
      console.error(err.message);
      return;
    }
    connection.execute(
      "SELECT * " +
        "FROM BOS_course",
      function(err, result)
      {
        if (err) {
          console.error(err.message);
          doRelease(connection);
          return;
        }
        console.log(result.rows);
        doRelease(connection);
      });
  });

module.exports = {
    oracledb
};

그런데 tnsnames.또는 파일을 어디에 넣어야 하는지 모르겠어요.이 링크를 온라인에서 찾았습니다.$ORACLE_HOME/network/admin무슨 말인지는 모르겠지만요데이터베이스에 대한 접근이 제한되어 있습니다.자바를 몰라서 미안합니다.데이터베이스와 완전히 분리되어 사는 노드 앱에서 이 연결을 사용하려면 어떻게 해야 합니까?내 앱은 "appDB"가 무엇인지 어떻게 알고 tnsnames.or 파일에서 찾는 방법은 무엇입니까?

미리 감사드립니다!

connectString 변수에 전체 연결 주소 입력

{ user : process.env.ORACLE_USER, password : process.env.ORACLE_PASSWORD, connectString : "(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))(CONNECT_DATA =(SID= ORCL)))" }

질문에 기술적으로 답하려면 환경 변수를 설정합니다.TNS_ADMIN. 그러면 node-oracledb(그리고 Python cx_Oracle, PHP OCI8, Ruby ruby-oci8 등과 같은 다른 OCI 기반 언어 API)가 검색됩니다.$TNS_ADMIN/tnsnames.ora.

Azure에 VM이 두 개 있는 경우와 유사한 경우가 있습니다.하나는 Oracle 12c DB용이고 다른 하나는 Oracle 클라이언트 측 라이브러리가 있는 nodejs 또는 acledb 패키지용입니다.원격 DB와 연결하기 위한 클라이언트 측의 연결 문자열입니다.

module.exports = {
  user          : process.env.NODE_ORACLEDB_USER || "hr",
  password      : process.env.NODE_ORACLEDB_PASSWORD || "welcome",
  connectString : process.env.LOCAL || "myipaddress:1521/servicename",
};

언급URL : https://stackoverflow.com/questions/43645841/connecting-to-a-remote-oracle-db-with-nodejs-through-oracledb-driver

반응형