如何创建物化视图以连接两个不同的oracle数据库表
我需要创建一个mview,使用refresh命令将数据从远程数据库获取到目标数据库 这是我创建mview的sql查询:如何创建物化视图以连接两个不同的oracle数据库表,oracle,ddl,materialized-views,Oracle,Ddl,Materialized Views,我需要创建一个mview,使用refresh命令将数据从远程数据库获取到目标数据库 这是我创建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
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:无法解析指定的连接标识符
我不知道如何为远程目标创建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))';
请注意,使用系统
用户创建一个DBLink来为普通用户启用物化视图是一个坏主意
拥有数据库链接后,可以使用以下方法创建mview:
create materialize view foobar
as
select *
from the_table@si_db;
请注意,_表
引用了DBLink中指定的用户架构中的一个表。这就是您不应该为DBLink使用系统
帐户的原因之一。如果表不在DBLink用户的架构中,则需要限定表名:
create materialize view foobar
as
select *
from the_user.the_table@si_db;
使用
sid的service\u名称