ORA-28595错误

  ORA-28595错误  2006-12-14 00:00:00

分类: Linux

在设置外部C过程的时候,发现了一个ORA-28595错误。

由于是第一次配置外部C过程,即使参考了Tom的代码仍然碰到了大量的错误,但是这个错误是最特殊的,原因很简单,这个错误居然在Oracle920Error Messages文档中找不到。


建立外部过程比较复杂,这里就不多描述了,这个问题的环境出自于:http://yangtingkun.itpub.net/post/468/239478

c程序编译成.so文件后,第一次建立库文件时,并不是像链接例子中给出的那样,将multi_sum.so拷贝到了/opt/ora9/product/9.2/lib/目录下,而是直接在编译的当前路径/home/oracle/目录下建立了库。

SQL> CREATE OR REPLACE LIBRARY MULTI_SUM_C AS '/home/oracle/multi_sum.so'
2 /

Library created.

SQL> CREATE OR REPLACE FUNCTION F_MULTI_SUM_C(P_IN IN BINARY_INTEGER) RETURN VARCHAR2 AS
2 LANGUAGE C NAME "multi_sum" LIBRARY MULTI_SUM_C WITH CONTEXT 
3 PARAMETERS (
4 CONTEXT, 
5 P_IN INT, 
6 P_IN INDICATOR SHORT, 
7 RETURN INDICATOR SHORT, 
8 RETURN LENGTH INT, 
9 RETURN STRING
10 );
11 /

Function created.

SQL> SELECT F_MULTI_SUM_C(1) FROM DUAL; 
SELECT F_MULTI_SUM_C(1) FROM DUAL
*
ERROR at line 1:
ORA-28595: Extproc agent : Invalid DLL Path

于是查询出现了ORA-28595这个错误,从信息本身上看倒是不难理解。但是由于Oracle的文档没有记载这个错误,因此也没有相应的错误解决方法。而根据错误本身的含义去检查LIBRARY的路径是无法发现错误的。

除了连接中给出的那个办法之外,还有下面的办法。

$ORACLE_HOME/network/admin/listener.ora文件进行如下的修改:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/ora9/product/9.2)
(ENVS = EXTPROC_DLLS=ANY)
(PROGRAM = extproc)
)

.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值