feature/screen-management #83
|
|
@ -99,23 +99,35 @@ export class OracleConnector implements DatabaseConnector {
|
|||
try {
|
||||
const startTime = Date.now();
|
||||
|
||||
// 쿼리 타입 확인 (DML인지 SELECT인지)
|
||||
const isDML = /^\s*(INSERT|UPDATE|DELETE|MERGE)/i.test(query);
|
||||
|
||||
// Oracle XE 21c 쿼리 실행 옵션
|
||||
const options: any = {
|
||||
outFormat: (oracledb as any).OUT_FORMAT_OBJECT, // OBJECT format
|
||||
maxRows: 10000, // XE 제한 고려
|
||||
fetchArraySize: 100
|
||||
fetchArraySize: 100,
|
||||
autoCommit: isDML // ✅ DML 쿼리는 자동 커밋
|
||||
};
|
||||
|
||||
console.log('Oracle 쿼리 실행:', {
|
||||
query: query.substring(0, 100) + '...',
|
||||
isDML,
|
||||
autoCommit: options.autoCommit
|
||||
});
|
||||
|
||||
const result = await this.connection!.execute(query, params, options);
|
||||
const executionTime = Date.now() - startTime;
|
||||
|
||||
console.log('Oracle 쿼리 실행 결과:', {
|
||||
query,
|
||||
rowCount: result.rows?.length || 0,
|
||||
rowsAffected: result.rowsAffected,
|
||||
metaData: result.metaData?.length || 0,
|
||||
executionTime: `${executionTime}ms`,
|
||||
actualRows: result.rows,
|
||||
metaDataInfo: result.metaData
|
||||
metaDataInfo: result.metaData,
|
||||
autoCommit: options.autoCommit
|
||||
});
|
||||
|
||||
return {
|
||||
|
|
|
|||
Loading…
Reference in New Issue