Cách đơn giản nhất để tránh sử dụng SQL động là tạo các từ đồng nghĩa.
CREATE OR REPLACE SYNONYM MyTableRemote
FOR [email protected]_link
Các thủ tục được lưu trữ của bạn sau đó sẽ chỉ đơn giản là tham chiếu đến từ đồng nghĩa MyTableRemote
. Sau đó, bạn có thể có một phương thức riêng biệt lấy tên liên kết cơ sở dữ liệu làm tham số và thay đổi tất cả các từ đồng nghĩa để trỏ đến liên kết cơ sở dữ liệu.
PROCEDURE replace_synonyms( p_db_link IN VARCHAR2 )
AS
BEGIN
-- Adjust the query to identify all the synonyms that you want to recreate
FOR syn IN (SELECT *
FROM user_synonyms
WHERE db_link IS NOT NULL)
LOOP
EXECUTE IMMEDIATE
'CREATE OR REPLACE SYNONYM ' || syn.synonym_name ||
' FOR ' || syn.table_owner || '.' || syn.table_name || '@' || p_db_link;
END LOOP;
END;