I am trying to determine what this code is doing (Oracle SQL) — especially the at-sign exclamation mark in the from
clause.
INSERT INTO "LOCATIONS" "A1"
("LOCATION_ID",
"SEQUENCE",
"POINT_TYPE")
SELECT "A2"."LOCATION_ID",
"A2"."SEQUENCE",
"A2"."LOCATION_TYPE",
"A2"."POINT_TYPE"
FROM "LOCATIONS"@! "A2"
WHERE NOT EXISTS (SELECT 1
FROM "LOCATIONS" "A3"
WHERE "A3"."LOCATION_ID" = "A2"."LOCATION_ID")
This is a reverse database link to the original database, where the query is executed. The original query must look like:
INSERT INTO LOCATIONS@remote_db
("LOCATION_ID",
"SEQUENCE",
"POINT_TYPE")
SELECT "A2"."LOCATION_ID",
"A2"."SEQUENCE",
"A2"."POINT_TYPE"
FROM "LOCATIONS" A2
WHERE NOT EXISTS (SELECT 1
FROM LOCATIONS@remote_db A3
WHERE "A3"."LOCATION_ID" = "A2"."LOCATION_ID");
That way all remote tables become local, and local tables become remote with "@!".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With