我正在使用Oracle SQL Developer。
我有两个连接我经常使用两个基本相同但命名不同的模式,分别为Foo和Bar连接说FOO
和BAR
。我的查询基本上就是这样......
select Stuff from FOO.CoolTable; -- For Foo connection
select Stuff from BAR.CoolTable; -- For Bar connection
我最终要做的就是在切换连接(或手动来回切换)之后,同时按下 Ctrl + Enter 输入。
我想知道的是,是否有某种方法可以获得某种特定于连接的变量,因此我只能编写一个,当我运行查询时,它会根据连接选择正确的模式。
这样的事情:
select Stuff from <my_var>.CoolTable;
其中<mr_var>
被视为Foo连接的文本“FOO
”和条形连接的“BAR
”。
类似于环境变量的概念,如果这有助于澄清。
答案 0 :(得分:1)
我认为sqldeveloper中没有任何内容可供您使用。
但是,您可以使用数据库上的登录触发器为登录设置默认架构。这样,您可以在不使用限定模式名称的情况下触发查询,只需:select Stuff from CoolTable
设置登录触发器:Oracle setting per user default scheme (not altering a session)
答案 1 :(得分:1)
替换变量怎么样?
在frist连接中,只需:
define myschema = foo
并在第二个连接中:
define myschema = bar
查询可能如下所示:
select * from &myschema..tablename;
我已经在SQL Developer上测试了它,它需要&myschema
和表名之间的两个点,当我只使用一个点时出现语法错误,我不知道为什么