例如:数据库服务器A ARSYSTEM,数据库服务器B ULTRACMDB,数据库客户端;通过客户端连到A,在A上操作访问B
 
1、在数据库客户端Ctnsnames中配置数据库服务器A ARSYSTEM的服务
 
LMISDX_LOCAL=
(DEscrīptION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = 实例名)
  )
)
 
  2、这样就可以通过客户端访问到数据库AARSYSTEM的用户
 
  3、在数据库服务器A ARSYSTEMtnsnames中配置数据库服务器B  ULTARNMSCMDB的服务
 
LMISSD=
(DEscrīptION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.123)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
plsql12配置数据库连接    (SERVICE_NAME = LMIS)
  )
)
 
4.通过客户端C访问到数据库A的用户,A上创建数据库链接
 
 
 
-
- Create database link
createpublicdatabaselinkLMIS_SDTEST
connecttoLMIS_SDTESTidentifiedby***
using'LMISSD';
 
   Create DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
5、查询远端数据库里的表(通过客户端C登陆到数据库服务器A访问数据库B)

  Select …… FROM 表名@数据库链接名;
    SELECT*FROMSPKFK@LMIS_SDTEST
 
 注意:创建是很简单,但是在使用中后台却出现锁,查看这个锁的方法可以去console中看到或者查询数据库。每次使用dblink查询的时候,均会与远程数据库创建一个连接,dblink应该不会自动释放这个连接,如果是大量使用dblink查询,会造成web项目的连接数不够,导致系统无法正常运行,导致系统无正常运行。
 
创建一个dblink
create public database link nms_2_225
connect to ultranms identified by ultranms
using'NMS_2.225';
表的查询
select * from res_host@nms_2_225
create table res_tes as select * from res_host@nms_2_225  ---a
select * from  res_tes --as select * from res_host@nms_2_225
update res_tes set res_id=1  where res_name='test'
select res_id,res_name from res_host@nms_2_225
select res_id,res_name from res_host@nms_2_225 where res_id in (select res_id from res_tes)
PROCEDURE+DBLINK+JOB
建立job
begin
sys.dbms_job.submit(job => :job,
what => 'proc_yw;',
next_date => to_date('13-11-2007 14:00:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'trunc(sysdate)+1+14/24');
commit;
end;
间隔trunc(sysdate)+1+14/24 就是每天下午2点执行一次proc_yw存储过程;
如间隔trunc(sysdate)+1+33/48就是每天下午4:30时执行一次
oracle数据库的定时Jobs作业(工作) 的使用
通过jobs的使用就能实现每天或每月的指定时间执行一个函数、过程与命令。
就如同Windows系统中的任务计划一样。
一:sqlserver连接oracle 
  1.配置windowsODBC数据源:   
  开始菜单》设置》管理工具》数据源(ODBC》进入配置用户DSN或者系统DSN均可以: 
  添加》选择Microsoft  ODBC  for  oracle—》自定义数据源名称(最好跟tns中连接串同名!)》服务器名称 
  (必填!填写tns文件中的连接串名称)》完成。   
   
  2.配置sqlserver2000中的连接服务器:   
  企业管理器》安全性》连接服务器》右键新建连接服务器》定义连接名称; 
  选其他数据源;  指定程序名称为:Microsoft  OLE  DB  Provider  for  Oracle;  产品名称可不填;   
  数据源指定刚才ODBC中定义好的数据源名称;  提供程序字符串按以下格式填写:User  ID=username;Password=userpasswd 
  (或者按如下格式:UID=username;PWD=userpasswd) 
  这里的用户名和密码对应所要连接的oracle数据库中的用户名和密码  —  安全性标签页里: 
  设置用此安全上下文进行,并录入oracle的数据库用户名和密码》服务器选项标签页可默认》确定。   
   
  3.完成了。使用方法 
  sqlserver企业管理器》安全性》连接服务器打开刚建好的连接服务器》点击表, 
  即可在右边窗口看到该oracle数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现! 
  访问表时,使用格式为:  [连接服务器名]..[ORACLE用户].[表名]。必须为大写。更详细具体的使用这里不再赘述。 
二:oracle连接sqlserver 
  1、安转透明网关 
  在自定义安转内 
  D:\oracle\ora92\tg4msql\a      tg4msql 
  2、在D:\oracle\ora92\network\a内添加  
    (SID_DESC  = 
              (GLOBAL_DBNAME  =  tg4msql)   
                (PROGRAM  =  tg4msql) 
              (ORACLE_HOME  =  D:\oracle\ora92) 
              (SID_NAME  =  tg4msql) 
          ) 
 
回答人的补充   2009-07-02 12:07
3、配置tns 
  a 
  ----------------- 
  例子
  cdma  = 
      (DESCRIPTION  = 
          (ADDRESS_LIST  = 
              (ADDRESS  =  (PROTOCOL  =  TCP)(HOST  =  zhyg)(PORT  =  1521)) 
          ) 
          (CONNECT_DATA  = 
              (SID  =  tg4msql) 
              (SERVER  =  DEDICATED) 
          ) 
          (HS=OK) 
      ) 
  例子
  du  = 
      (DESCRIPTION  = 
          (ADDRESS_LIST  = 
              (ADDRESS  =  (PROTOCOL  =  TCP)(HOST  =  sha38)(PORT  =  1521)) 
          ) 
          (CONNECT_DATA  = 
              (SID  =  jf) 
              (SERVER  =  DEDICATED) 
          ) 
          (HS=OK) 
      ) 
 
  3、创建数据链路     
  CREATE  PUBLIC  DATABASE  LINK  DU  CONNECT  TO  SA  IDENTIFIED  BY  SA  USING  'DU' 
  ok可以使用了 
  select  *  from  sysobjects@cdma 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。