如何创建物化视图来连接两个不同的oracle数据库表
how to create materialized view to connect two different oracle database tables
我需要创建一个 mview 以使用刷新命令将数据从远程数据库获取到目标数据库。
这是我创建 mview 的 sql 查询:
CREATE DATABASE LINK SI_DB
CONNECT TO SYSTEM IDENTIFIED BY password
USING 'SI_DEV';
这是我的 tns.ora 文件:
SI_DEV=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = servidor)(PORT = 1521))
)
(CONNECT_DATA =
(SID = MSQL)
)
(HS=OK)
)
我收到以下错误:
ORA-12154: TNS:could not resolve the connect identifier specified
我不知道如何为远程目标创建 mview。
我们是否需要将目标或远程数据库放入 .or 文件中?
谁能帮我解决这个问题?
您创建DBLink 的服务器上的tnsnames.ora
需要包含到远程Oracle 实例的连接信息。您还可以通过在创建 dblink 时提供连接描述符,在不更改该服务器上的 tnsnames.ora
的情况下创建 DBLink:
CREATE PUBLIC DATABASE LINK SI_DB
CONNECT TO some_user
IDENTIFIED BY some_password
USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = servidor)(PORT = 1521)) ) (CONNECT_DATA = (SID = MSQL) ) (HS=OK))';
请注意,使用 system
用户创建 DBLink 以向普通用户启用实体化视图不是一个好主意。
获得 DBLink 后,您可以使用以下方法创建 mview:
create materialize view foobar
as
select *
from the_table@si_db;
请注意,the_table
引用了 DBLink 中指定的用户架构中的 table。这就是您不应将 system
帐户用于 DBLink 的原因之一。如果 table 不在 DBLink 用户的架构中,则需要限定 table 名称:
create materialize view foobar
as
select *
from the_user.the_table@si_db;
我需要创建一个 mview 以使用刷新命令将数据从远程数据库获取到目标数据库。
这是我创建 mview 的 sql 查询:
CREATE DATABASE LINK SI_DB
CONNECT TO SYSTEM IDENTIFIED BY password
USING 'SI_DEV';
这是我的 tns.ora 文件:
SI_DEV=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = servidor)(PORT = 1521))
)
(CONNECT_DATA =
(SID = MSQL)
)
(HS=OK)
)
我收到以下错误:
ORA-12154: TNS:could not resolve the connect identifier specified
我不知道如何为远程目标创建 mview。
我们是否需要将目标或远程数据库放入 .or 文件中?
谁能帮我解决这个问题?
您创建DBLink 的服务器上的tnsnames.ora
需要包含到远程Oracle 实例的连接信息。您还可以通过在创建 dblink 时提供连接描述符,在不更改该服务器上的 tnsnames.ora
的情况下创建 DBLink:
CREATE PUBLIC DATABASE LINK SI_DB
CONNECT TO some_user
IDENTIFIED BY some_password
USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = servidor)(PORT = 1521)) ) (CONNECT_DATA = (SID = MSQL) ) (HS=OK))';
请注意,使用 system
用户创建 DBLink 以向普通用户启用实体化视图不是一个好主意。
获得 DBLink 后,您可以使用以下方法创建 mview:
create materialize view foobar
as
select *
from the_table@si_db;
请注意,the_table
引用了 DBLink 中指定的用户架构中的 table。这就是您不应将 system
帐户用于 DBLink 的原因之一。如果 table 不在 DBLink 用户的架构中,则需要限定 table 名称:
create materialize view foobar
as
select *
from the_user.the_table@si_db;