Oracle SQL Developer 中的连接特定变量是否可能?

Are connection specific variables in Oracle SQL Developer possible?

我正在使用 Oracle SQL 开发人员。

我有两个我经常使用的连接,它们有两个基本相同但命名不同的模式,例如 FOOBAR 分别用于 Foo 和 Bar 连接。我的查询基本上是这样的...

select Stuff from FOO.CoolTable; -- For Foo connection
select Stuff from BAR.CoolTable; -- For Bar connection

我最后做的是在切换连接(或切换回手动来回)。

我想知道的是,是否有某种方法可以让某种特定于连接的变量,所以我只能写一个,当我 运行 查询时,它选择了基于连接的正确模式。

像这样:

select Stuff from <my_var>.CoolTable;

其中 <mr_var> 被读取为 Foo 连接的文本“FOO”和 Bar 连接的“BAR”。

类似于环境变量的概念,如果这有助于澄清的话。

我认为 sqldeveloper 中没有任何东西可以满足您的需要。

但是,您可以在数据库上使用登录触发器来为您的登录设置默认架构。这样您就可以在不使用限定模式名称的情况下触发查询,只需:select Stuff from CoolTable

设置登录触发器:Oracle setting per user default scheme (not altering a session)

替代变量呢?

在第一个连接中做:

 define myschema = foo

在第二个连接中:

 define myschema = bar

查询可能如下所示:

select * from &myschema..tablename;

我在SQL Developer上测试过,&myschema和table名字之间需要两个点,我只用一个点的时候出现语法错误,不知道为什么。