文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络程序开发OracleORACLE的外部调用的实现
精品推荐
特别推荐
·ORACLE应用中常见的傻瓜问题1000问 (二)
·自动清除statspack所产生的snapshot旧记录
·MPlayer常见问题解答
·常用数据库比较
·ODBC API常用函数诠释
·提高ORACLE数据库的查询统计速度
·细化解析:Oracle使用的hints调整机制
·解析Oracle/Oracle Forms 的多用途代码
·从Oracle的FORM中调用REPORT的实用技巧
·Oracle SQL精妙SQL语句讲解
热点TOP10
·ORACLE常用傻瓜问题1000问
·自动清除statspack所产生的snapshot旧记录
·ORACLE应用中常见的傻瓜问题1000问 (二)
·Oracle SQL精妙SQL语句讲解
·详细介绍ORACLE sqlplus命令
·Oracle DBMS_REPAIR包修复损坏数据块
·ORA-01555 快照过旧
·Oracle客户端文件打包
·DBMS_REPAIR包修复损坏数据块
·VMware下RedHat安装Oracle 9i RAC全攻略

ORACLE的外部调用的实现

日期:2007年7月2日 作者: 查看:[大字体 中字体 小字体]


  使用ORACLE的外部调用大致分以下几步:
  
  1、编写共享库(或动态连接库),也就是你想调用的过程或函数。
  2、设置listener.ora和tnsnames.ora,确保外部调用的服务可用。
  3、create library
  4、create function or procedure
  
  下面的例子是在solaris 7 + oracle 816环境下通过的,只是写一个随机函数。
  
  
  1、编写共享库:
  
  test.c:
  #include
  #include
  
  int ora_rand()
  {
   int rao;
   rao = rand();
   return rao;
  }
  
  编译:
  
  $ gcc -c test.c
  $ ls
  test.c test.o
  $ ld -G test.o -o test.so
  $ ls
  test.c test.o test.so
  
  2、配置listener.ora和tnsnames.ora
  
  listener.ora:
  # Generated by Oracle configuration tools.
  
  LISTENER =
   (DESCRIPTION_LIST =
   (DESCRIPTION =
   (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.99)(PORT = 1521))
  
   )
   )
   )
  
  SID_LIST_LISTENER =
   (SID_LIST =
   (SID_DESC =
   (SID_NAME = PLSExtProc)
   (ORACLE_HOME = /home/oracle/product/816)
   (PROGRAM = extproc)
   )
   (SID_DESC =
   (ORACLE_HOME = /home/oracle/product/816)
   (SID_NAME = sid1)
   )
   )
  
  tnsnames.ora:
  # Generated by Oracle configuration tools.
  
  EXTPROC_CONNECTION_DATA =
   (DESCRIPTION =
   (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
   )
   (CONNECT_DATA =
   (SID = PLSExtProc)
   (PRESENTATION = RO)
   )
   )
  
  sid1 =
   (DESCRIPTION =
   (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.99)(PORT = 1521))
   )
   (CONNECT_DATA =
   (SERVICE_NAME = sid1)
   )
   )
  
  当然文件都是本地的
  
  3、create library:
  
  create library 要有相应的权限,我为了省事,就在system用户下建的:
  
  SQL> CREATE OR REPLACE LIBRARY ext_lib IS '/home/oracle/local/test.so'
  ;
   2 /
  
  Library created.
  
  
  4、create function:
  
  SQL> create function test_rand
   2 return binary_integer as language c
   3 name "ora_rand"
   4 library ext_lib;
   5 /
  
  Function created.
  
  然后就可以调用test_rand生成随机数了:
  
  SQL> select 1*test_rand from dual;
  
  1*TEST_RAND
  -----------
   16838
  
  SQL> /
  
  1*TEST_RAND
  -----------
   5758
  
  SQL> /
  
  1*TEST_RAND
  -----------
   10113
  
  这个函数生成的随机数在0到32767之间。
[1] [2] 下一页 



上一篇:Oracle数据库中快照的使用

下一篇:关于临时表(from metalink)
相关文章:
·如何实现局域网打印机共享
·推荐:漂亮的手机上使用的墙纸图片分享下载
·绝对好用的注册表技巧
·36招非常有用的电脑技巧知识
·非主流ps教程实用的技巧大全
·网络入侵也玩双通道 间接实现入侵系统
·实现多文件瞬间复制/移动
·ORACLE常用傻瓜问题1000问
·Windows系统使用的文件及打开方式
·常用的网络测试命令
相关软件:

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot