我在与 SQL 开发人员链接的数据库的表部分中看不到任何表。数据库管理员说我需要更改 SQL 开发人员中的默认架构。我怎么做?
10 回答
alter session set current_schema = otheruser;
应该做的伎俩。
只需右键单击创建的连接并选择“架构浏览器”,然后使用过滤器显示所需的连接。
干杯。
我不知道在 SQL Developer 中有什么方法可以做到这一点。在“其他用户”->“< Schemaname >”中查看时,您可以看到所有其他模式及其对象(如果您有正确的权限)。
在您的情况下,要么使用上述方法,要么为您想要工作的架构创建一个新连接,或者为您希望访问的所有表创建同义词。
如果您将在 SQL*Plus 中工作,那么发布ALTER SESSION SET CURRENT_SCHEMA=MY_NAME
将设置您当前的模式(这可能是您的 DBA 的意思)。
我知道这是旧的,但...
我找到了这个:
http://javaforge.com/project/schemasel
从描述中可以看出,在您安装插件后,如果您在逻辑连接名称后面加上方括号中的架构,则默认情况下它应该连接到架构。
它会,但对象浏览器不会。
那好吧。
在 ORACLE 中创建新用户时,也会自动创建一个空的表和视图工作区。该工作区域称为“架构”。由于用户和模式之间的紧密耦合关系,这些术语经常被用作同义词。默认情况下,SQL Developer 将显示属于您连接的用户的空模式,如果它确实是空的。
但是,如果您单击展开标题为“其他用户”的树部分,您将看到您的用户有权访问的其他用户/模式。如果您选择正确的用户/模式,您可以在那里找到您正在寻找的表和视图。一个对象只存在于拥有它的模式中。
尽管如此,如果应用程序允许我们选择更靠近树根的所需模式,而不是强迫我们去搜索它,那就太好了。其他答案提供了解决方法,例如:
- 以所需的用户/模式登录开始。
- 使用不同的工具。
- 忽略树并执行:alter session set current_schema = otheruser;
- 每次加载应用程序时创建一个启动脚本来设置架构。
最后,我搜索并找到了另一个免费工具,它似乎可以解决这个特殊的可用性问题,称为DBeaver。
这有点令人困惑,因为模式这个词被重载了。Schema 还可用于描述应用程序的数据库。为了更清楚,请阅读更多有关 ORACLE 上下文中使用的术语模式的信息。
如果您以 scott 身份登录,但希望查看 HR 模式的表,则需要更改会话“alter session set current_schema=HR;”
如果你一直这样做,那么你可以创建一个名为 login.sql 的启动脚本,其中包含上述命令,然后告诉 SQL Developer 在启动时通过 Tool/Preferences/Database 运行它
只需创建一个新连接(点击绿色加号)并输入您的 DBA 建议的新默认模式的模式名称和密码。您可以使用窗口右上角的下拉菜单在旧模式和新模式之间切换。
将权限授予指定用户后,您必须在过滤时执行此操作:
第一步:
第二步:
现在,您将能够在将默认加载 Alter 会话更改为所需模式后显示表(在 LOG ON 后使用触发器)。