oracle表名中带@什么意思,例如:select * from dim.dim_area_no@to_dw

如题所述

@是调用数据库链接(database link)的意思。

数据库链接的作用是从a数据库到b数据库之间访问的一种手段。类似于 ogg 中的表同步(用户同步)。db link 的主要作用是跨库查询。有很多业务都需要进行跨库查询。这种方式创建方式简单、易懂、可以拥有创建用户的所有权限。


扩展资料

数据库链接也有缺点,比如大量消耗数据库资源;本地系统每通过DBLINK链接远端系统一次,都会生成一个本地session,如本地session不退出或者手动释放,只有通过session超时才能自动释放,会浪费大量的系统资源。

容易出现数据库BUG:大量使用DBLINK,本地系统极易出现ORA-02068、ORA-03113、ORA-02080、ORA-02054、ORA-02050等Oracle错误,这种错误大部分会影响当前session正在处理的业务。

由于使用DBLINK,本地系统在获取数据时,每次链接都会对远端数据库进行一次全表扫描,且所有数据都会传输回本地数据库内,导致性能降低并且严重浪费当前系统资源。尤其出现一条sql语句从两个DBLINK中取数,更被称之为“性能杀手”,尤其是OLTP型数据库。

参考资料来源:百度百科-Oracle数据库

参考资料来源:百度百科-SQL语法

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-01
应该是建的有database links
dim是用户名,dim_area_no是表名,to_dw 是建的database links的名,
dim_area_no表属于dim用户
创建database links的作用是连接其他数据库的表
select * from dim.dim_area_no@to_dw
这个语句的作用是查询属于dim用户的dim_area_no表的所有内容本回答被提问者和网友采纳
第2个回答  2011-04-28
select * from dim.dim_area_no@to_dw

是检索 链接数据库 to_dw 那里的 dim 用户下的 dim_area_no 表。

下面是创建 数据库链接, 与检索的例子:

SQL> CREATE DATABASE LINK mydblink
2 CONNECT TO test IDENTIFIED BY test123
3 USING '(DESCRIPTION =
4 (ADDRESS_LIST =
5 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.210)(PORT = 1521)))
6 (CONNECT_DATA = (SERVICE_NAME = orcl)
7 )
8 )';
Database link created.

SQL> select count(1) from user_tables@mydblink;
COUNT(1)
----------
6

注:如果创建全局dblink,必须使用systm或sys用户,在database前加public。

参考资料:http://hi.baidu.com/wangzhiqing999/blog/item/fa5e070ef5c3950f94ca6b69.html

第3个回答  2011-04-28
@后是实例名或数据源,一个简单例子,服务器上创建了2个数据库实例,名称分别为HR、BOSS,如果你用PL/SQL DEVELOPR等根据登录了HR实例,此时可以省略@HR,若是要访问BOSS实例,则需要select * from dim.dim_area_no@BOSS
第4个回答  2011-04-29
@后是实例名或数据源