Merge branch 'feature/rest-api-integration' of http://39.117.244.52:3000/kjs/ERP-node

This commit is contained in:
2025-09-26 20:04:07 +09:00
40 changed files with 10345 additions and 1914 deletions

View File

@@ -1,3 +1,4 @@
// @ts-ignore
import * as oracledb from 'oracledb';
import { DatabaseConnector, ConnectionConfig, QueryResult } from '../interfaces/DatabaseConnector';
import { ConnectionTestResult, TableInfo } from '../types/externalDbTypes';
@@ -100,7 +101,7 @@ export class OracleConnector implements DatabaseConnector {
// Oracle XE 21c 쿼리 실행 옵션
const options: any = {
outFormat: oracledb.OUT_FORMAT_OBJECT, // OBJECT format
outFormat: (oracledb as any).OUT_FORMAT_OBJECT, // OBJECT format
maxRows: 10000, // XE 제한 고려
fetchArraySize: 100
};
@@ -176,6 +177,8 @@ export class OracleConnector implements DatabaseConnector {
async getColumns(tableName: string): Promise<any[]> {
try {
console.log(`[OracleConnector] getColumns 호출: tableName=${tableName}`);
const query = `
SELECT
column_name,
@@ -190,16 +193,23 @@ export class OracleConnector implements DatabaseConnector {
ORDER BY column_id
`;
console.log(`[OracleConnector] 쿼리 실행 시작: ${query}`);
const result = await this.executeQuery(query, [tableName]);
return result.rows.map((row: any) => ({
console.log(`[OracleConnector] 쿼리 결과:`, result.rows);
console.log(`[OracleConnector] 결과 개수:`, result.rows ? result.rows.length : 'null/undefined');
const mappedResult = result.rows.map((row: any) => ({
column_name: row.COLUMN_NAME,
data_type: this.formatOracleDataType(row),
is_nullable: row.NULLABLE === 'Y' ? 'YES' : 'NO',
column_default: row.DATA_DEFAULT
}));
console.log(`[OracleConnector] 매핑된 결과:`, mappedResult);
return mappedResult;
} catch (error: any) {
console.error('Oracle 테이블 컬럼 조회 실패:', error);
console.error('[OracleConnector] getColumns 오류:', error);
throw new Error(`테이블 컬럼 조회 실패: ${error.message}`);
}
}