@sqb/oracle
Advanced tools
Comparing version 4.0.1-alpha.19 to 4.0.1-alpha.20
@@ -8,4 +8,5 @@ import { Adapter, ClientConfiguration } from '@sqb/connect'; | ||
cursor: boolean; | ||
schema: boolean; | ||
}; | ||
connect(config: ClientConfiguration): Promise<Adapter.Connection>; | ||
} |
@@ -17,2 +17,4 @@ "use strict"; | ||
cursor: true, | ||
schema: true, | ||
// fetchAsString: [DataType.DATE, DataType.TIMESTAMP, DataType.TIMESTAMPTZ] | ||
}; | ||
@@ -30,7 +32,7 @@ } | ||
sessionId = r.rows[0][0]; | ||
const oracon = new OraConnection_1.OraConnection(connection, sessionId); | ||
/* Set default schema */ | ||
if (config.schema) { | ||
await connection.execute('alter SESSION set CURRENT_SCHEMA = ' + config.schema, [], { autoCommit: true }); | ||
} | ||
return new OraConnection_1.OraConnection(connection, sessionId); | ||
if (config.schema) | ||
await oracon.setSchema(config.schema); | ||
return oracon; | ||
} | ||
@@ -37,0 +39,0 @@ catch (e) { |
@@ -18,4 +18,6 @@ import oracledb from 'oracledb'; | ||
test(): Promise<void>; | ||
getSchema(): Promise<string>; | ||
setSchema(schema: string): Promise<void>; | ||
onGenerateQuery(prepared: QueryRequest): void; | ||
execute(request: QueryRequest): Promise<Adapter.Response>; | ||
} |
@@ -7,2 +7,3 @@ "use strict"; | ||
exports.OraConnection = exports.dataTypeNames = void 0; | ||
const assert_1 = __importDefault(require("assert")); | ||
const oracledb_1 = __importDefault(require("oracledb")); | ||
@@ -81,7 +82,7 @@ const OraCursor_1 = require("./OraCursor"); | ||
async startTransaction() { | ||
assert_1.default.ok(this.intlcon, 'Can not start transaction for a closed db session'); | ||
this._inTransaction = true; | ||
} | ||
async commit() { | ||
if (!this.intlcon) | ||
return; | ||
assert_1.default.ok(this.intlcon, 'Can not commit transaction for a closed db session'); | ||
await this.intlcon.commit(); | ||
@@ -97,6 +98,16 @@ this._inTransaction = false; | ||
async test() { | ||
if (!this.intlcon) | ||
return; | ||
assert_1.default.ok(this.intlcon, 'DB session is closed'); | ||
await this.intlcon.execute('select 1 from dual', [], {}); | ||
} | ||
async getSchema() { | ||
assert_1.default.ok(this.intlcon, 'DB session is closed'); | ||
const r = await this.intlcon.execute('select sys_context( \'userenv\', \'current_schema\' ) from dual', [], { autoCommit: true }); | ||
if (r && r.rows && r.rows[0]) | ||
return r.rows[0][0]; | ||
return ''; | ||
} | ||
async setSchema(schema) { | ||
assert_1.default.ok(this.intlcon, 'Can not set schema of a closed db session'); | ||
await this.intlcon.execute('alter SESSION set CURRENT_SCHEMA = ' + schema, [], { autoCommit: true }); | ||
} | ||
onGenerateQuery(prepared) { | ||
@@ -107,4 +118,3 @@ prepared.dialect = 'oracle'; | ||
async execute(request) { | ||
if (!this.intlcon) | ||
throw new Error('Can not execute while db session is closed'); | ||
assert_1.default.ok(this.intlcon, 'Can not execute query with a closed db session'); | ||
const oraOptions = { | ||
@@ -111,0 +121,0 @@ autoCommit: request.autoCommit, |
{ | ||
"name": "@sqb/oracle", | ||
"description": "SQB serialization extension for Oracle database", | ||
"version": "4.0.1-alpha.19", | ||
"version": "4.0.1-alpha.20", | ||
"author": "Panates Ltd.", | ||
@@ -31,3 +31,3 @@ "contributors": [ | ||
"oracledb": "^5.0.0", | ||
"@sqb/oracle-dialect": "^4.0.1-alpha.19" | ||
"@sqb/oracle-dialect": "^4.0.1-alpha.20" | ||
}, | ||
@@ -34,0 +34,0 @@ "main": "dist/index.js", |
17920
394