代码之家  ›  专栏  ›  技术社区  ›  JARC

Oracle变量替换-同义词

  •  0
  • JARC  · 技术社区  · 14 年前

    我想用一个变量来代替 oracle .

    var是通过 SQLPlus

    &在我的场景中,1是模式名-这是SQL。

    CREATE SYNONYM ACCOUNT FOR &1.ACCOUNT;
    

    synonym 为ABCAccount创建,而不是ABC账户. 由于某些原因,期间被删除。

    2 回复  |  直到 14 年前
        1
  •  8
  •   Alex Poole    14 年前

    句点被视为变量名的终止。它通常是可选的(例如,当名称后面有空格时),但有时必须有它来区分变量和下一位文本。假设你真的想用绳子结束 ABCACCOUNT ;如果你有 &1ACCOUNT 1ACCOUNT ,这不是你想要的。句点告诉它变量名的结束位置。

    在这种情况下,您需要有一个句点来显示变量的结尾,然后是另一个句点,以便将其视为模式:

    CREATE SYNONYM ACCOUNT FOR &1..ACCOUNT;
    
        2
  •  0
  •   JARC    14 年前
    DECLARE
      schema_name VARCHAR2(30) := '&1';
    BEGIN
        EXECUTE IMMEDIATE 'CREATE SYNONYM ACCOUNT FOR ' || schema_name || '.ACCOUNT';
    END;
    /