十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在ORACLE里A库里建立一个同义词可把B库的X 表映射到A库。这样A库就当本库的表(虚拟式)使用。
成都创新互联于2013年成立,是专业互联网技术服务公司,拥有项目网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元获嘉做网站,已为上家服务,为获嘉各地企业和个人服务,联系电话:18982081108
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和试图的功能类似,就是一种映射关系。本文介绍如何创建同义词语句,删除同义词以及查看同义词语句。
oracle的同义词总结:
从字面上理解就是别名的意思,和试图的功能类似。就是一种映射关系。
1.创建同义词语句:
create public synonym table_name for user.table_name;
其中第一个user_table和第二个user_table可以不一样。
此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词:create synonym table_name for table_name@DB_Link;
当然,你可能需要在user用户中给当前用户(user2)授权: grant select/delete/update on user2
首先登录的用户(user2为例)必须有操作要”跨用户“的用户(user1为例)权限。
如果有权限的话。登录user2(conn user2/password)通过如下命令查看:”select a.name from user1.table1 a“;
解释:当前登录的用户必须有访问user1表table1权限限,之后就可以当做是“一个用户”下的表完成跨用户查询。
如果没有权限的话,需要登录到user1给user2授权table1表查询权限:grant select on table1 to user2;即可完成权限设置。
第一就是优化网络,如果网络没问题那就没有别的办法,只能从查询语句上优化。
因为你胯库查询时间消耗=在其他库上面执行查询的时间+网络传输时间。通常网络不会有问题,所以只能优化查询语句
假定您现在拥有一个以Microsoft.NET为架构的网络订购系统,但是品管维护系统却仍然使用一套旧式的Oracle数据库应用程序。当您的顾客在产品保固期间下了产品更换之类的订单,则该笔订单将不收取任何费用。此时您需要从Oracle数据库得到实时的查询结果。借着建立连结服务器的方式(linkedServer),您将可以从SQLServer实时查询出位于Oracle数据库的顾客资料,找出谁是您既有的客户。
当您的资料分散在不同的SQLServer数据库时,藉由连结服务器可让您执行跨服务器之分布式查询。当所有的数据库服务器都是SQLServer,则连结服务器的设定十分容易,而且在SQLServer线上手册中就涵盖了您所需要了解的所有事项。然而,当部分资料是放在Oracle数据库服务器的时候,这就可能带给您许多挑战。举例来说,光是设定连结服务器就不是一件容易的事。您必须了解到:即是您要在SQLServer的EnterpriseManager设定一个Oracle连结服务器,这台SQLServer对Oracle来说就是一个客户端。所以您必须在SQLServer所在的服务器成功地安装并组态Oracle之客户端软件。因为Oracle提供的产品只支持Oracle8以后的数据库,所以我假设您正在使用的都是Oracle8以后的数据库。在OracleNet8函式库则提供了SQLServer所需要的客户端软件。
设定连接服务器时是利用Microsoft所提供的OLEDB ProviderforOracle,使用的Oracle网络函式库为SQL*Net2.3.3.0.4或是以后的版本,不过这是Oracle7.3数据库所提供的。换句话说,要设定Oracle数据库为SQLServer的连接服务器时,Oracle数据库只要是7.3.3.4以后的版本,并搭配适当的SQL*Net或是Net8函式库即可。
在Oracle数据库中,一个schema即代表着SQLServer专家们所熟知的单一数据库(译者注2)。连接至Oracle数据库时,您必须提供schema名称、密码以及主机联机字符串(hoststring)。每一个特定的Oracle帐户都拥有一个Oracleschema,而且只能有一个schema。所以schema名称其实就等于该schema拥有者的帐户名称。您可以查询Oracle的资料字典(Datadictionary)以得到更多有关schema的内容。
至于Oracle联机字符串又可称为服务名称(servicename)或是系统识别资料(SystenIdentifier,SID)。我们所谓的SQLServer数据库个体(instance)在Oracle则称为数据库(database)。所以安装OracleServer时,安装程序OracleUniversalInstaller(为一个图形接口之安装程序,与SQLServer的Setup程序类似)将会询问您SID名称为何,以作为Oracle数据库之名称。
这个部分原作者所提到schema的解释有点问题。Oracleschema可视为同一个使用者所拥有的所有数据库对象(schemaobjects)之集合。举例来说,使用者scott所建立的EMPtable其完整名称为SCOTT.EMP,而SCOTT就是EMP的schema名称。所以schemaname其实就是一个Oracle数据库之使用者帐号。但是绝对不能拿来跟数据库相提并论!因为SQLServer的数据库架构包含了datafiles与logfiles,但是Oracle的schemaobjects只存在于tablespace中。为了避免部分读者产生混淆,特此说明。
是可以的,方法很多。我就说几种比较常用的方法吧。
1、在程序中实现:如 java 语言, 使用JDBC在B上连接C的数据库.需要用到如下参数
Driver : oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:C的iP:1521:orcl
username : 连接数据库的用户名
password: 密码
2、在B上使用工具 如(PLSQL Developer )
先在B上使用 oracle 的 net configuration assistant 工具(安装完ORACLE后就有)配置C的数据库连接,然后用 PLSQL Developer 连接就可以了 注意 数据库这一栏要填刚才配置的别名 不是本地的数据库名