执行Oracle存储过程时,提示“未指定的错误”。紧急求助!(300)

  • 主题发起人 主题发起人 fatalexception
  • 开始时间 开始时间
F

fatalexception

Unregistered / Unconfirmed
GUEST, unregistred user!
程序结构:ADOStoredProc -> ADOConnection -> OLE DB Provider for Oracle -> Oracle 10g 系统环境:Delphi6, Windows XP professional SP3 出错时机:存储过程先Prepare后ExecProc,程序报错“未指定的错误”。 出错特点:1、不是每次执行都出错。2、出错与具体存储过程无关,执行任何一个存储过程都出现过报错。3、在PL/SQL中,用“TEST”功能测试存储过程,运行正常。4、在PL/SQL中运行一次之后,再通过Delphi程序调用,也运行正常。请问是什么原因?或:该如何排查?
 
碰到过,应该是参数类型不对。
 
回jacket84:并非每次都出错。而且在PL/SQL中执行一次以后就不再出错了。如果参数类型不对,应该每次都出错吧?
 
估计存储过程可能有问题。你可以写一个简单的存储过程,执行几次看看,如果没问题,就是你的存储过程有问题,如有问题,则是oracle数据库有问题了。
 
首先,你要保证存储过程要是编译成功的,不知道你有没有装plsql developer,那个工具可以看到那个存储过程是否编译成功过。 另外,建议adpconnect 选择 Oracle provider for oledb 的数据连接。
 
与具体存储过程无关,存储过程不但在PL/SQL中可以正常运行,在PL/SQL中运行以后再由Delphi程序调用也不再报错了。
 
又有新发现,在PL/SQL里不执行存储过程,而是重新编译一下存储过程,则再在程序中就可以正常调用了。
 
那就结贴吧。
 
在PL/SQL里执行应该会做一次编译吧,跟你重新编译一下的效果是一样的吧。不知道楼主是不是用PLSQL Developer。
 
to jacket84: 是PL/SQL Developer。
 
to szhcracker: 还没有查到原因啊
 
不应该是存储过程的问题,你直接调用一个简单Sql语句,是不是也出现这样的情况?
 
已查出原因,是因为修改了表结构,存储过程必须重新编译。如果不重新编辑,则会出现“未指定的错误”。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
962
import
I
I
回复
0
查看
670
import
I
后退
顶部