我用VC作了个Dll 
输出函数 (_stdcall)
根据网上找到的例子,
create or replace library ddd as 'e:\ttt.dll';
但是,这句话怎么一直不返回,也就是不成功,
怎么办,有什么好的办法实现oracle 触发器调用C++Dll,
急用,多谢了:)

解决方案 »

  1.   

    可能是你放的dll的目录不对,有两种方式:
    1.是在监听器的extproc对对应项里面增加 (ENVS="EXTPROC_DLLS=ANY")
    2.最简单的就是将dll放到%ORACLE_HOME%\bin 或者 %ORACLE_HOME%\lib下面。
      

  2.   

    触发器中调用java类倒是听说过,调用dll,这个。不知道 
      

  3.   

    放在bin或者lib目录下
    create or replace library ddd as ttt.dll'; 
    不成功,继续等待
      

  4.   

    我的oracle 是8.1.7,是不是版本不支持?
      

  5.   

    817应该已经支持。 我试了一下,create library的时候不会检测文件是否存在,因此和文件没有关系。 你的错误号是什么呢?
      

  6.   

    --SQLplus system/manger
    --create or replace library ddd as ttt.dll'; 
    -->
    是没you结束的样子
    跟语句没有写完一样
      

  7.   

    搞定了,问题是
    写完语句后,加/
    例如:create or replace library ddd as ttt.dll'; 
    /
    旧可以了,多谢楼上各位了
      

  8.   

    接着问:
    C++里的字符串类型char *
    跟oracle 的varchar2(20)
    要对应,怎么写函数