【问题标题】:Are connection specific variables in Oracle SQL Developer possible?Oracle SQL Developer 中的连接特定变量是否可行?
【发布时间】:2015-08-19 06:15:19
【问题描述】:

我正在使用 Oracle SQL Developer。

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

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

我最终要做的是在切换连接(或手动来回切换)后在我需要的那个上同时写入并按 Ctrl + Enter

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

类似这样的:

select Stuff from <my_var>.CoolTable;

其中&lt;mr_var&gt; 被读作Foo 连接的文本“FOO”和Bar 连接的“BAR”。

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

【问题讨论】:

    标签: oracle oracle-sqldeveloper


    【解决方案1】:

    替换变量呢?

    在第一个连接中,只需执行以下操作:

     define myschema = foo
    

    在第二个连接中:

     define myschema = bar
    

    查询可能如下所示:

    select * from &myschema..tablename;
    

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

    【讨论】:

      【解决方案2】:

      我认为 sqldeveloper 中没有任何你需要的东西。

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

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

      【讨论】:

      • 不确定我是否有权执行此操作,有没有办法通过 Oracle Dev 在登录时运行命令? (令人尴尬的是,我不知道 set schema 是一个东西。)如果不是,我也许可以说服我们的 DBA 这样做。
      • 您需要特权才能执行此操作,因此请您的 dba 喝杯咖啡 :)
      • 我今天早上为开发和运营团队带来了百吉饼,我们将它们包括在内是有原因的;)
      猜你喜欢
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      • 1970-01-01
      • 2017-06-30
      相关资源
      最近更新 更多