Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Sử dụng liên kết cơ sở dữ liệu Oracle mà không có SQL động không thể đọc được

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao tôi gặp lỗi khi cố gắng đổi tên bảng sau FROM?

  2. Viết chế độ xem oracle DB dựa trên sự khác biệt về dấu thời gian cột khác nhau

  3. Hibernate 4.3.5 bỏ qua thuộc tính cấu hình v $ session.program

  4. Quay lại lời nhắc sqlplus

  5. Thủ tục Tràn bộ đệm