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功能说明