oracle中有没有类似sql server中扩展存储过程的机制?
(可用vc写个程序,编成.dll,用为扩展存储过程。)类似的功能。偶看一书前言oracle的总裁说“oracle 8i内置Java虚拟机,可在数据库内编写,存储,执行Java代码。”
但翻了许多书,都没有看到具体的叙述。请问到底有没有这种功能?

解决方案 »

  1.   

    有类似的功能,实现过程:
    1.创建dll,假设dll为:f:\dll\test.dll,其中有一个函数名为TestCon
    2.在Sql中执行如下语句:
    create or replace library my_dll as 'f:\dll\Test.dll';
    create or replace procedure Test() is external
         name "TestCon" 
         LIBRARY my_dll
         LANGUAGE C ;
    3.设置dll环境变量:
    文件名:listener.ora  路径:D:\oracle\ora92\NETWORK\ADMIN\
        (SID_DESC =
          (PROGRAM = extproc)
          (SID_NAME = PLSExtProc)
          (ENVS=EXTPROC_DLLS=f:\dll\Test.dll)
          (ORACLE_HOME = D:\oracle\ora92)
        )
    文件名:tnsnames.ora 路径:D:\oracle\ora92\network\admin\
    EXTPROC_CONNECTION_DATA.HAILIANG.COM =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = houwenqiang)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
    4.然后就可以按照正常的存储过程调用方法进行调用了。