ORA-02069:该操作的global_names参数必须设置为TRUE

时间:2018-07-18 20:44:57

标签: sql oracle plsql

因此,我目前正在尝试执行此合并操作,以通过数据库链接在另一个数据库的另一个表中插入/更新表。但是,我收到此错误:

**ORA-02069: global_names parameter must be set to TRUE for this operation**

我尝试更改会话以将global_names设置为TRUE。然而;一旦这样做,在编译存储过程后,我将收到以下错误消息:

错误:ORA-00604:在递归SQL级别1发生错误ORA-02085:数据库链接TEST连接到TEST

我还必须尝试其他哪些选项才能使其正常工作?

下面是我要合并的代码:

MERGE INTO table@TEST T
USING (SELECT FROM,
            TO_,
       trunc(utc_hr) as DATA_DATE_DT,  
            UTC_HR,
            DATA_TYPE,
            VALUE_NB,
            LOCAL_TIME_TS
    FROM    VIEW_A
  ) S ON (
                T.FROM = S.FROM_TX
        AND T.TO = S.TO_TX
            AND T.TIMESTAMP_ = S.UTC_HR)
WHEN MATCHED THEN
    UPDATE
        SET T.VAL                = S.value_nb,
            T.LOCAL_TIMESTAMP = S.LOCAL_TIME_ts
WHEN NOT MATCHED THEN 
        INSERT 
        (
          FROM,
          TO,
          DATE_,
          TIMESTAMP_,
          VAL,
          LOCAL_TIMESTAMP )
        VALUES   
         (S.FROM_TX,
          S.TO_TX,
          S.data_date_dt,
          S.utc_hr,
          S.value_nb,
          S.LOCAL_TIME_ts);

1 个答案:

答案 0 :(得分:1)

如您在官方docs中所见:

“ GLOBAL_NAMES指定是否要求数据库链接与其连接的数据库具有相同的名称。”

因此,您需要使用链接数据库的正确名称(包括域(如果存在))进行数据库链接。在您的示例中,正确的数据库链接名称应为TEST1。您无法重命名现有链接,因此必须从头开始创建新的数据库链接。