diff --git a/plugins/dbgate-plugin-oracle/src/backend/Analyser.js b/plugins/dbgate-plugin-oracle/src/backend/Analyser.js index 397f7aa5f..c2617bc4f 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/Analyser.js +++ b/plugins/dbgate-plugin-oracle/src/backend/Analyser.js @@ -71,6 +71,9 @@ class Analyser extends DatabaseAnalyser { this.feedback({ analysingMessage: 'Loading indexes' }); const indexes = await this.analyserQuery('indexes', ['tables'], { $owner: this.dbhan.database }); this.feedback({ analysingMessage: 'Loading unique names' }); + + const triggers = await this.analyserQuery('triggers', undefined, { $owner: this.dbhan.database }); + const uniqueNames = await this.analyserQuery('uniqueNames', ['tables'], { $owner: this.dbhan.database }); this.feedback({ analysingMessage: 'Finalizing DB structure' }); @@ -183,6 +186,13 @@ class Analyser extends DatabaseAnalyser { // schemaName: func.schema_name, contentHash: func.hash_code, })), + triggers: triggers.rows.map(row => ({ + trigerName: row.TRIGGER_NAME, + definition: row.DEFINITION, + tableName: row.TABLE_NAME, + triggerLevel: row.TRIGGER_LEVEL, + eventType: row.EVENT_TYPE, + })), }; this.feedback({ analysingMessage: null }); diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/index.js b/plugins/dbgate-plugin-oracle/src/backend/sql/index.js index ca1b3f24f..70e7bf59c 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/index.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/index.js @@ -6,6 +6,7 @@ const views = require('./views'); const matviews = require('./matviews'); const routines = require('./routines'); const indexes = require('./indexes'); // use mysql +const triggers = require('./triggers'); //const indexcols = require('./indexcols'); const uniqueNames = require('./uniqueNames'); //const geometryColumns = require('./geometryColumns'); @@ -24,7 +25,8 @@ module.exports = { routines, matviews, indexes, -// indexcols, + triggers, + // indexcols, uniqueNames, //geometryColumns, //geographyColumns, diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/triggers.js b/plugins/dbgate-plugin-oracle/src/backend/sql/triggers.js new file mode 100644 index 000000000..69ebda3d5 --- /dev/null +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/triggers.js @@ -0,0 +1,18 @@ +module.exports = ` +SELECT + TRIGGER_TYPE AS event_type, + TRIGGER_BODY AS definition, + TRIGGER_NAME AS trigger_name, + TABLE_NAME AS table_name, + OWNER, + CASE + WHEN INSTR(TRIGGER_TYPE, 'ROW') > 0 THEN 'ROW' + WHEN INSTR(TRIGGER_TYPE, 'STATEMENT') > 0 THEN 'STATEMENT' + ELSE NULL + END AS trigger_level +FROM + all_triggers +WHERE + OWNER='$owner' + AND 'tables:' || TABLE_NAME =OBJECT_ID_CONDITION +`;