From d4c2b4af7b9f4678f157f6e1879f51fe15bcbf79 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Mon, 11 May 2026 11:00:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(oracle):=20=E7=AE=80=E5=8C=96=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=99=A8=E9=80=89=E6=8B=A9=E5=99=A8=E5=B9=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20schema=20=E5=88=87=E6=8D=A2=20(closes=20#205)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Oracle/Dameng 连接隐藏多余的 Database 选择器,只显示 Schema 选择器。 查询执行时通过 ALTER SESSION SET CURRENT_SCHEMA 切换 schema 上下文。 --- src/components/layout/EditorToolbar.vue | 13 ++++++++----- src/composables/useSchemaOptions.ts | 6 ++++-- src/lib/databaseCapabilities.ts | 6 ++++++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/components/layout/EditorToolbar.vue b/src/components/layout/EditorToolbar.vue index e4d2eea95c..78f82b8d67 100644 --- a/src/components/layout/EditorToolbar.vue +++ b/src/components/layout/EditorToolbar.vue @@ -24,6 +24,7 @@ import { useSchemaOptions } from "@/composables/useSchemaOptions"; import { connectionIconType } from "@/lib/connectionPresentation"; import { isDefaultDatabase } from "@/lib/defaultDatabase"; import { connectionDisplayName } from "@/lib/tabPresentation"; +import { isSingleDatabase } from "@/lib/databaseCapabilities"; import { hexToRgba } from "@/lib/color"; import type { QueryTab, ConnectionConfig } from "@/types/database"; @@ -60,16 +61,18 @@ const activeDatabaseOptions = computed(() => { const activeDatabaseValue = computed(() => props.activeTab.database || ""); const activeConnectionValue = computed(() => props.activeConnection?.id || ""); const activeSchemaValue = computed(() => props.activeTab.schema || ""); +const isSingleDb = computed(() => isSingleDatabase(props.activeConnection?.db_type)); +const schemaDatabaseKey = computed(() => props.activeTab.database || (isSingleDb.value ? "_" : "")); const showSchemaSelector = computed(() => { const connection = props.activeConnection; - return connection && isSchemaAware(connection.id) && props.activeTab.database; + return connection && isSchemaAware(connection.id) && (props.activeTab.database || isSingleDb.value); }); const activeSchemaOptions = computed(() => { const connection = props.activeConnection; if (!connection) return []; - return getSchemaOptionsForDb(connection.id, props.activeTab.database); + return getSchemaOptionsForDb(connection.id, schemaDatabaseKey.value); }); const isActiveDatabaseDefault = computed(() => isDefaultDatabase(props.activeConnection, activeDatabaseValue.value)); @@ -212,7 +215,7 @@ function databaseDisplayName(database: string): string { -
+