Oracle SQL Developer 中的连接特定变量是否可能?
Are connection specific variables in Oracle SQL Developer possible?
我正在使用 Oracle SQL 开发人员。
我有两个我经常使用的连接,它们有两个基本相同但命名不同的模式,例如 FOO
和 BAR
分别用于 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名字之间需要两个点,我只用一个点的时候出现语法错误,不知道为什么。
我正在使用 Oracle SQL 开发人员。
我有两个我经常使用的连接,它们有两个基本相同但命名不同的模式,例如 FOO
和 BAR
分别用于 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名字之间需要两个点,我只用一个点的时候出现语法错误,不知道为什么。