node로 오라클 클라우드 접속

Oracle Wallet 으로 Oracle Cloud DB 접속

💬 오라클 클라우드에 데이터베이스생성

오라클 클라우드에 데이터 베이스 생성하는 post는 본 블로그의 검색 기능을 이용하여 확인할것

오라클 인스턴스 설치

  • 다운로드 받은 파일

https://download.oracle.com/otn_software/nt/instantclient/2380000/instantclient-basic-windows.x64-23.8.0.25.04.zip

  • 23.8.0.25.04.zip 파일을 다운로드 받는다.

  • 아래 디렉토리에 압축해제함
    1
    C:\expert\instantclient_23_8

node 로 접속하기

  • 의존성 라이브러리 설치

    1
    npm install unzipper oracledb
  • db 내용을 읽어서 출력하는 코드 작성

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    const fs = require('fs');
    const path = require('path');
    const unzipper = require('unzipper');
    const oracledb = require('oracledb');
    const os = require('os');

    async function extractWallet(zipPath, extractTo) {
    await fs.createReadStream(zipPath)
    .pipe(unzipper.Extract({ path: extractTo }))
    .promise();
    }

    async function run() {
    const walletZip = path.join(__dirname, '../../../Wallet_goodsaem.zip');
    const walletTmpDir = path.join(os.tmpdir(), 'oracle_wallet_tmp');

    await extractWallet(walletZip, walletTmpDir);

    // Oracle 클라이언트 초기화
    oracledb.initOracleClient({ libDir: 'C:\\expert\\instantclient_23_8' }); // Windows 환경

    process.env.TNS_ADMIN = walletTmpDir;

    const connection = await oracledb.getConnection({
    user: 'admin',
    password: '',
    connectString: 'xxxx_high'
    });

    const result = await connection.execute(`SELECT name, email FROM test`);

    for (const row of result.rows) {
    console.log('name : ' + row[0] +'\n');
    console.log('email : ' + row[1]);

    }

    console.log('✅ 완료');
    await connection.close();
    }

    run();
  • 아래와 같이 출력되면 정상

공유하기