因此,我目前正在尝试执行此合并操作,以通过数据库链接在另一个数据库的另一个表中插入/更新表。但是,我收到此错误:
**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);
答案 0 :(得分:1)
如您在官方docs中所见:
“ GLOBAL_NAMES指定是否要求数据库链接与其连接的数据库具有相同的名称。”
因此,您需要使用链接数据库的正确名称(包括域(如果存在))进行数据库链接。在您的示例中,正确的数据库链接名称应为TEST1。您无法重命名现有链接,因此必须从头开始创建新的数据库链接。