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.新建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 文件,请高手解答,谢谢。急。。
解决方案 »
- 有一个表有一个日期字段,要求对此字段按年,月,日进行分组列表显示
- SQL语句优化,帮忙看看,谢谢
- 遍历ID,PID,高手进,速度结贴!
- 如何将oracle 10g 的dmp文件,导入到Oracle9i的数据库中
- 优化sql语句
- 高分求助:在日文linux上安装oracle遇到的问题
- 100分求java报表示例
- 1个很简单的数据库问题:找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料.
- 特急!oracle8.16的安装问题?在线等
- 请教一个棘手的问题,撤消回滚功能怎么来实现?我先是做了一个操作,同时修改插入了N个表,并且提交了,现在我发现我操作错误了
- 一条趣味很高的sql 语句,大家一定要来看看..发表下你的见解
- 这么一条SQL怎么写,郁闷了半天了,跪求答案!!
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; 编译时都正确吗?
对数据库的操作 都对 只有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' 执行过程中出错
然后不要用绝对路径,直接写dll名称试下
http://topic.csdn.net/t/20021011/15/1088256.html
http://www.100test.com/html/207/s_ORACLE_B5_F7_D3_C3_207492.htm
试过了,不好用