【问题标题】:Change to other database in sql developer在sql developer中更改为其他数据库
【发布时间】:2016-03-23 15:45:02
【问题描述】:

我想在 Sql Developer 中更改 SQL 工作表的数据库连接。例如,我现在正在使用数据库连接 !OMY_OWNER_C_1 并希望将数据库连接更改为 !OMY_OWNER_C_2。

我现在这样做的方法是单击右上角的“选择数据库连接”按钮,然后选择!OMY_OWNER_C_2,但我想通过运行一些 sql 来实现。

谁能告诉我怎么做? (或者是否有可能?)

我已经尝试过使用“ALTER SESSION SET current_schema = !OMY_OWNER_C_2;”,但这并不能解决问题。

在其他堆栈溢出线程中存在一个类似的问题,建议使用“ALTER SESSION SET current_schema = !OMY_OWNER_C_2”,但对我来说,这并不能解决问题。我做错了什么,或者它不能,或者有其他原因导致它不起作用。

在 Sql Server 中我只使用 'USE database !OMY_OWNER_C_2',但 Oracle/Sql 开发人员的工作方式不同。

我制作了两个打印屏幕,希望能更清楚地显示上面使用的一些名称:http://prntscr.com/9mo3ushttp://prntscr.com/9mo7hh

【问题讨论】:

标签: oracle-sqldeveloper


【解决方案1】:

ALTER SESSION SET CURRENT_SCHEMA = SchemaNameTwo 应该可以胜任。
但不要依赖 SQL Developers GUI。当您触发 alter session 命令时,显示当前架构名称的字段不显示 SchemaNameTwo
相反:要验证架构是否已更改:使用此选择:
SELECT sys_context( 'userenv', 'current_schema' ) FROM dual;

我的例子:
ALTER SESSION SET CURRENT_SCHEMA = minimaks; SELECT sys_context( 'userenv', 'current_schema' ) FROM dual; ALTER SESSION SET CURRENT_SCHEMA = minimakskontrol; SELECT sys_context( 'userenv', 'current_schema' ) FROM dual;

给出这个结果:
会话已更改。 SYS_CONTEXT('USERENV','CURRENT_SCHEMA')
-------------------------------------------------- -----------------------------------------
迷你模型

会话已更改。 SYS_CONTEXT('USERENV','CURRENT_SCHEMA')
-------------------------------------------------- ------------------------------
MINIMAKSKONTROL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    相关资源
    最近更新 更多