oracle调用C连接库问题windows xp 系统, Oracle10g   vc6.0
步骤:
1.新建win32 dynamic_link library 工程  命名 testdll加入代码testdll.cpp
//testdll.cpp
#include<windows.h>
int __stdcall DllMain(HANDLE,DWORD,LPVOID)
{
return 1;
}  
short test(void)
{
return system("dir e: > e:\\mydire.txt");
}加入testdll.def
LIBRARY "testdll.dll"
EXPORTS
test @1  
完成,f7  在debug里生成 testdll.dll
把testdll.dll 复制到e:盘下
打开Oracle sqlplus
sql>create or replace library wz_test as 'e:\testdll.dll';
sql>/sql>create or replace function wz_funtest return binary_integer as external library  wz_test name "test" language  c parameters (return   short);
sql>/
sql>create   table   ff(addr   varchar2(20));  sql>create or replace trigger my_test_trigger after insert on ff declare my_result binary_integer; begin my_result := wz_funtest; end; 
sql>/sql>insert into ff values('hahahaha');报错
insert into ff values('wwgdu')
            *
第 1 行出现错误:
ORA-28595: Extproc 代理: DLL 路径无效
ORA-06512: 在 "SYSTEM.WZ_FUNTEST", line 1
ORA-06512: 在 "SYSTEM.MY_TEST_TRIGGER", line 2
ORA-04088: 触发器 'SYSTEM.MY_TEST_TRIGGER' 执行过程中出错e盘下也没有生成mydire.txt 文件,请高手解答,谢谢。急。。

解决方案 »

  1.   

    没有权限,要用grant按授权先,或者连接为sysdba用户
      

  2.   

    一步一步来:
    1.create or replace function wz_funtest return binary_integer as external library  wz_test name "test" language  c parameters (return  short); 2.create or replace trigger my_test_trigger after insert on ff declare my_result binary_integer; begin my_result := wz_funtest; end; 编译时都正确吗?
      

  3.   

    我用的是 system 用户 这个也没有权限吗???
     对数据库的操作 都对  只有insert into ff values('hahahaha'); 的时候是错误的,输出的错误信息
      

  4.   

    就是在最后一步insert into ff values('hahahaha'); 才给的错误信息的就是下面的信息。。insert into ff values('hahahaha')
                *
    第 1 行出现错误:
    ORA-28595: Extproc 代理: DLL 路径无效
    ORA-06512: 在 "SYSTEM.WZ_FUNTEST", line 1
    ORA-06512: 在 "SYSTEM.MY_TEST_TRIGGER", line 2
    ORA-04088: 触发器 'SYSTEM.MY_TEST_TRIGGER' 执行过程中出错 
      

  5.   

    把dll放到oracle home/bin目录下
    然后不要用绝对路径,直接写dll名称试下
      

  6.   

    下面的贴子都看过了吗?http://www.oracle.com.cn/viewthread.php?tid=115838
    http://topic.csdn.net/t/20021011/15/1088256.html
    http://www.100test.com/html/207/s_ORACLE_B5_F7_D3_C3_207492.htm
      

  7.   

    回 ckc 
    试过了,不好用