如何通过DB link进行远程过程或c语言函数调用过程

Oracle DB Link介绍
  1。基本概念:
  数据库连接串主要用于建立对远程数据库的访问方法,可以直接读取远程Oracle的数据,或者直接修改。数据库连接串可以是公用连接PUBLIC或者私有连接PRIVATE。这一点和同义词很相像。
  1。创建语法:
  CREATE DATABASE LINK TEST CONNECT TO USERNAME IDENTIFIED BY PASSWORD
  USING 'CONNECT_STRING';
  解释:TEST是数据库连接串的名字。以后就通过这个名字来进行调用远程数据库的内容。
  USERNAME是用来连接到远程数据库的合法Oracle用户名。PASSWORD为该用户连接到Oracle时候的合法密码。
  CONNECT_STRING为该Oracle数据库所在的主机上的tnsnames.ora文件里边定义的数据库连接串。
  2。使用方法:
  SELECT COUNT(*) FROM TABLE_NAME@DB_LINK WHERE WHERE_CLAUSE;//查阅远程数据库的内容。
  UPDATE TEST.TEST@DB_LINK SET SO_NBR=NEW_SO_NBR
  WHERE WHERE_CLAUSE;//修改远程数据库的内容。
  在实际使用过程中,还可以通过为这个远程表建立一个同义词来进一步增加透明性,使该数据库连接串对于程序和开发人员来讲完全透明。
  CREATE SYNONYM TABLE_NAME FOR TABLE_NAME@DB_LINK;
  3。数据库连接的管理:
  1。如何知道当前用户、当前系统中有哪些数据库连接串?
  SELECT * FROM USER_DB_LINKS;
  这个查询会给出当前用户的数据库联接的名字、联接用户名、联接密码、要连接的主机以及创建时期。
  SELECT * FROM DBA_DB_LINKS;
  这个查询会给出当前系统中所有的数据库联接的创建用户、联接用户名、要连接的主机以及创建时期。
  SELECT * FROM V$DBLINK;
  这个查询会给出当前打开的数据库联接。
  4。常见错误处理:
  ////////////////////////////////////////////////////////////////
  1。不能分解服务名:
  登录到远程服务器上的结果:
  net97>show parameters global_name
  NAME TYPE VALUE
  ------------------------------------ ------- ------------------------------
  global_names boolean FALSE
  net97>
  net97>drop
  数据库链接已丢弃。
  net97>create database link jinhua
  2 connect to username identified by password
  3 using 'jinhua';
  数据库链接已创建。
  net97>select * from so@jinhua;
  select * from so@jinhua
  ERROR 位于第 1 行:
  ORA-12154: TNS:不能分解服务名称.
  net97>conn username/password@jinhua;
  已连接。
  net97>
  这是因为在Oracle数据库所在的Unix主机上面的tnsnames.ora文件里边没有对jinhua这个服务名的定义。所以不能分解服务名。
相关报道:
新闻热线:010-
责任编辑:
名企动态: |
标志着Windows迈出个性化计算的第一步……
本站特聘法律顾问:于国富律师
Copyright (C) 1997-相关文章推荐
database linke是建立一个数据库到另一个数据库的路径的对象,通过database link可以允许查询远程表,我理解可以算作一种分布式数据库的用法。
database link是...
关于DBlink的性能问题:
原则:把DBlink建立在数据量小的数据库中,减少DBlink的数据连接。
对于表关联的写法
数据库
...
db_link就是从一个ORACLE数据库服务连接到另一个oracle数据库服务的单方向的指针。
db_link连接是在A数据库上的用户能使用存储在A上的link来调用B数据库上的信息。
db link的查看创建与删除
1.查看dblink
select owner,object_name from dba_objectswhere object_type='...
一、概念:
利用DB_LINK和同义词,可以从一个数据库访问另一个数据库的对象,就象访问自己数据库的对象一样方便。
DB_LINK实现了从一个数据库到另一个数据库的数据通路。例如:
数据库A和B...
今天在做数据接口的时候发现了DBLINK ORA-01031的一些问题,整个场景回顾如下:一
1、首先默认用户是没有创建DBLink的权限的,因此一般人都使用SYS创建一个PUblic ...
如何通过dblink truncate远程数据库上的表
一般情况下,当我们直接truncate一个远程的表的时候,通常会返回如下的错误信息:
ORA-02021: DDL operations ar...
① create public database link link_name connect to user identified by password using 'SID';
1、dblink的种类
私有dblink:私有dblink用create database link语句创建,私有dblink只能在该数据库中由创建该dblink的用户才能使用和删除,其他用户都...
Oracle 创建 DBLink 的方法
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)君,已阅读到文档的结尾了呢~~
springerlink_著名数据库的使用方法,springerlink数据库,2000w数据库使用方法,pfam数据库使用方法,万德数据库使用方法,wind数据库使用方法,纯真ip数据库使用方法,access数据库使用方法,omim数据库使用方法,数据库的使用方法
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
springerlink_著名数据库的使用方法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口拒绝访问 | www. | 百度云加速
请打开cookies.
此网站 (www.) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3cbbb9ce-ua98).
重新安装浏览器,或使用别的浏览器远程过程调用中间件及数据访问中间件(RMI)
一 实习目的
通过实例掌握RMI,RPC,JDBC等中间件的使用。
二 实习要求
1)RPC实现远程计算服务。服务器端提供计算服务;客户端调用计算服务。
)RMI+JDBC远端数据库的访问。实现简单的成绩查询系统(创建表,录入成绩,查询成绩等)。在服务器端,通过JDBC访问数据库。客户端调用服务端提供的各种数据库操作。
三 实验过程
利用RPC实现远程计算服务。
& &(1)使用IDL定义服务接口.idl, 定义计算服务操作,
参考RPC实例hello.idl。
&& (2)编写配置文件mathservice.acf,
定义绑定句柄,参考RPC实例Hello.acf.
编译mathservice.idl文件
&& (4) 编写服务端程序
&& 文件夹,并将拷贝至此文件夹中。并编写server.c,请参RPC实例server.c.
&& 启动VC,创建win32-console
Application空白工程。工程路径设置为$example_dir$/server。将mathservice.h,
mathservice_s.c, server.c添加至工程中。&
添加RPC运行库rpcrt4.lib至工程。操作如下:
Project-setting-link-Object/library modules:
编译连接工程,生成mathservice.exe
(5) 编写客户端程序
创建$example_dir$/client文件夹,并将mathservice.h,
mathservice_c.c拷贝至此文件夹中。并编写.c,请参RPC实例client.c. 其余操作与服务器端(4)相同。
& 启动mathservice.exe
然后在client端输入数据,得到结果,测试如下截图效果:
& 2 RMI+JDBC远端数据库的访问
(1) 使用mysql-connector-java-5[1].0.8.zip驱动包,编写类,访问mysql数据库,。
(2)定义服务接口,实例DataServie.java。提供创建表,录入成绩,查询成绩等操作(尽量与DBmanager类中的操作定义成同样的形式)。
(3)实现服务,请参考RMI实例DataServiceImpl。对实现创建表,录入成绩,查询成绩等操作。实现过程中可直接使用DBmanager类。
(4)编写部署类DeployServer,请参考RMI实例DeployServer.java。
(5)使用DataService接口,实现客户端,请参考RMI实例RmiHelloClient.java。
四 实习总结
虽然是第一次实验,但是却因为前段时间做项目的原因,一直拖着没有完成,直到最近放假才得以有时间补上。本次实验为远程过程调用中间件及数据访问中间件,通过RPC和RMI分别完成VC和Java的编程,分别使用远程过程调用完成了数学的加减操作、使用数据访问中间件完成对数据库的操作。
通过本次实验,开始逐渐的了解了远程访问中间件和远程过程调用的使用方法和作用,在实验中的(1)中遇到了一点小问题,但是经过同学帮助,理解了其中的原理。实验中的(2)是今天刚刚完成的,所以印象比较深刻,主要探讨一下,在这个实验中遇到的问题。
问题1. 由于没有注意到实验中强调的修改jdk\jre\lib\security\
java.policy,由于没有注意这个问题,所以在编译时总是提示错误,最后在同学的帮助下,发现了问题。
问题2. 解决了第一个问题之后,再次编译发现,总是提示$Proxy cannot cast to
…的错误,而同学都说没有遇到这类问题,所以这令我很是苦恼,经过了一天的修改、网上查找答案,都没有找到合适的答案。于是我认真的研究了一下老师给出的例子的目录结构,得到了这么一个结论,在同一个Eclipse中运行服务器端和客户端,就会出现目录结构混乱的问题。因为在客户端调用的程序中调用的应该是服务器端的DataService接口,而不是自己包中的DataService,这是我检查出的类型转换错误的地方,我理解为在它自己的包中没有实现其接口(也就是没有DataServiceImpl),所以出现了转换失败的情况。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 函数调用过程 的文章

 

随机推荐