Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 4 additions & 20 deletions modules/tool/packages/dbops/children/oracle/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,6 @@
import type { OracleInputType, SQLDbOutputType } from '@tool/packages/dbops/types';
import oracle from 'oracledb';

function refine(result: any) {
if (!result.metaData || !result.rows) {
throw new Error('Invalid result: metaData or rows missing');
}

const columnNames = result.metaData.map((column: any) => column.name);

return result.rows.map((row: any, index: number) => {
if (row.length !== columnNames.length) {
throw new Error(`Row ${index} length does not match metaData length`);
}
const data: any = {};
columnNames.forEach((name: any, index: number) => {
data[name] = row[index];
});
return data;
});
}

export async function main({
sql: _sql,
connectString,
Expand All @@ -41,7 +22,10 @@ export async function main({
const sql = await pool.getConnection();
const result = await sql.execute(_sql);
await sql.close();
return { result };
await pool.close();
return {
result: JSON.parse(JSON.stringify(result))
};
} catch (error: unknown) {
if (error instanceof Error) {
return Promise.reject(Error(`Oracle SQL execution error: ${error.message}`));
Expand Down