как я могу установить соединение с механизмом федеративного хранилища в oracle

#mysql #sql #database #oracle

#mysql #sql #База данных #Oracle

Вопрос:

В настоящее время я переключаю свою базу данных проекта с MySQL на oracle, и я новичок в oracle.

Ранее запрос MySQL выглядел следующим образом:

 CREATE TABLE log_remote (
    log_no NUMBER(11) NOT NULL AUTO_INCREMENT,
    dttm DATETIME(3) NOT NULL,
    log_code VARCHAR2(20) NOT NULL,
    log_type VARCHAR2(255) NOT NULL,
    product VARCHAR2(64) NOT NULL,
    detail VARCHAR2(2048) NULL DEFAULT NULL,
    hmac VARCHAR2(64) NOT NULL',
    PRIMARY KEY (log_no, dttm)
    ) COLLATE='utf8_general_ci' ENGINE=FEDERATED
    CONNECTION='mysql://dblink:project!dblink@${Ip}:3306/cli/cli_log'
 

Проблема в том, что я не знаю, как сделать этот запрос

 CONNECTION='mysql://dblink:project!dblink@${Ip}:3306/cli/cli_log'
 

в oracle SQL. Я слышал, что я не могу использовать соединение с механизмом федеративного хранилища в oracle
, но я не могу найти, как сделать эквивалентный запрос в oracle.

Может кто-нибудь мне помочь? Спасибо 🙂

Ответ №1:

Я не знаю MySQL, поэтому я погуглил. В нем говорится, что

Механизм ФЕДЕРАТИВНОГО хранилища позволяет вам получать доступ к данным из удаленной базы данных MySQL …

Если это так, в Oracle вы бы использовали ссылку на базу данных. Затем получите доступ к таблицам, которые находятся в другой базе данных, по ссылке на базу данных.

Вот пример. Пользователь, который создает ссылку на базу данных, должен иметь эту привилегию, что означает, что привилегированный пользователь (например, SYS, которому принадлежит база данных) должен предоставить ее:

 SQL> grant create database link to scott;

Grant succeeded.
 

scott затем пользователь создаст ссылку на базу данных для пользователя hr :

 SQL> connect scott/tiger
Connected.
SQL> create database link dbl_hr
  2  connect to hr
  3  identified by hr
  4  using 'xe';

Database link created.
 

Работает ли это?

 SQL> select * from dual@dbl_hr;

D
-
X

SQL>
 

Да, это работает.