Oracle使用PL/sql操作COM对象
您所看到的Oracle课程,是Oracle使用PL/SQL操作COM对象,而Oracle是Oracle公司扩展到标准SQL并专门用于Oracle数据库编程的一种特殊语言。它属于第三代语言,调用外部C语言直接从PL / SQL过程提供了从Oracle8,允许开发者使用PL / SQL,在C语言编译程序模块。从Oracle8i,介绍了java程序。本文主要介绍了外部程序的基本原理和使用条件,并介绍了如何通过引用外部程序来操纵windows中的COM对象,并举例说明了excel对象的操作。
本文的运行环境都是建立在Oracle9i和Windows2000,oracle安装目录(oracle_home)是D: ora92 Oracle,希德是oradb,和主人叫CHANET。
必要性
的PL / SQL语言集成在SQL标准的扩展,效率和安全是Oracle数据库程序的设计非常适合,但是对于某些应用程序,编程语言是更适合比PL / SQL,如:操作系统资源的使用,C语言和参考系统对象的计算和设备的使用优于PL / SQL和java网络应用中的语言比PL / SQL。
如果它不适合应用程序中的PL/sql语言,那么它将被其他语言编译,然后由外部程序调用。
在Oracle8版本,PL / SQL和其他语言之间唯一的通信是通过dbms_pipe和dbms_alert包。建立之前,一个OCI接口或预编译监控程序是必要的,这是更复杂的。外部例程的出现只需要设置一个函数在PL / SQL映射对应的外部程序的功能,这是类似于普通的PL / SQL函数的使用,简化了使用过程。
基本原理
当外部C语言例程,Oracle监听器将开始extproc过程,这个过程会动态地加载到共享库(以下简称Windows动态链接库,这是DLL文件),过程中起缓冲作用,当外部函数调用的PL / SQL过程,发送到共享库的命令。在将结果返回到SQL / sql过程之后。
调用过程后,它与共享库会话(会话)一起存在。如果通话结束或关闭数据库的用户会话的extproc过程会自动关闭。
下面的图1-1是对外部例程的描述。
使用配置
在调用外部例程之前,必须进行以下设置:
配置监听器。
配置.NET组件服务。
配置监听器,打开D: ora92 Oracle网络管理员 listener.ora文件,修改文件参数。
这些参数中的两个对于使用外部例程很重要。
(address_list =(地址=(协议=(IPC)关键= extproc1))
基于IPC协议建立外部程序
(sid_desc =(sid_name = plsextproc)(oracle_home = D: ora92 Oracle)(程序= extproc))
记录数据库的相关性质,并sid_name是plsextproc默认。
配置网络组件服务,打开D: ora92 Oracle网络管理员 tnsnames.ora文件,并保存在文件中的内容。
重要参数如下:
(地址=(协议=(IPC)关键= extproc1))
(connect_data =(SID = plsextproc)(表示为RO)
两设置必须和Listener.ORA一致。
重新启动侦听器并测试服务是否可用。
听众:程序lsnrctl停止停止
启动:启动监听监听器
测试服务是否可用:
已使用的参数文件:
的dns适配器已被用来解析别名
测试是否extproc过程正常:
4。使用COM对象描述
COM对象设计将为开发人员提供三种基本操作。它们是:获取属性值、设置属性值(只读属性除外)和调用方法。Oracle数据库提供了在Windows平台下操作COM对象的接口,该接口属于C语言的外部例程。
工作原理如下:
在使用此函数之前,有必要了解以下内容:
1)创建COM对象操作函数。
2)配置监听器。
在listener.ora文件,添加以下和重新启动监听器。
3)数据类型和相应的COM对象类型
表1-1数据类型的比较
4)功能描述。
表1-2功能说明