diff --git a/packages/web/src/settings/ConnectionDriverFields.svelte b/packages/web/src/settings/ConnectionDriverFields.svelte index 016208efe..9c7b6e708 100644 --- a/packages/web/src/settings/ConnectionDriverFields.svelte +++ b/packages/web/src/settings/ConnectionDriverFields.svelte @@ -142,7 +142,30 @@ {/if} {#if driver?.showConnectionField('serviceName', $values, showConnectionFieldArgs)} - +
+
+ +
+
+ +
+
{/if} {#if driver?.showConnectionField('socketPath', $values, showConnectionFieldArgs)} diff --git a/plugins/dbgate-plugin-oracle/src/backend/driver.js b/plugins/dbgate-plugin-oracle/src/backend/driver.js index 941eb67a5..4b975b043 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/driver.js +++ b/plugins/dbgate-plugin-oracle/src/backend/driver.js @@ -60,6 +60,7 @@ const driver = { databaseUrl, useDatabaseUrl, serviceName, + serviceNameType, ssl, isReadOnly, authType, @@ -74,7 +75,15 @@ const driver = { client = await oracledb.getConnection({ user, password, - connectString: useDatabaseUrl ? databaseUrl : port ? `${server}:${port}/${serviceName}` : server, + connectString: useDatabaseUrl + ? databaseUrl + : serviceName + ? serviceNameType == 'sid' + ? `(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=${server})(PORT=${ + port || 1521 + }))(CONNECT_DATA=(SID=${serviceName})))` + : `${server}:${port || 1521}/${serviceName}` + : `${server}:${port || 1521}`, }); if (database) { await client.execute(`ALTER SESSION SET CURRENT_SCHEMA = ${database}`);