关于ADO连接ORACLE执行返回结果集的函数的问题, 下面的地址给出了几中解决方法:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1321421
但是按照其中的例子测试后仍然有问题, 
DELPHI版本为DELPHI5, 打过ADO的两个补丁以及D5EntUpdate.exe
用DElphi5也测试过, 现象一样的。
错误为
....exe raised exception class EAccessViolation with message 'Access
 violation at address 780014E6 in module 'msvcrt.dll'. Read of address
00000000'. Process stopped....
错误在Adodataset.Open时报出来的, 按照一般的分析, 应该是某个对象没有实例话,但是至少在外面没有这样的对象。
附源码:
ADOConnection1.ConnectionString := 'PLSQLRSet=1;Provider=OraOLEDB.Oracle.1;Password=XXXX;Persist Security Info=True;User ID=XXXX;Data Source=XXXX;Extended Properties=""';
    ADOConnection1.LoginPrompt := False;
    ADOConnection1.ConnectionTimeout := 10;
    ADOConnection1.open;      Adodataset.Close;
      Adodataset.commandtext := '{call SP_SSBF_TEST()}';
      Adodataset.CommandType := cmdText;
      Adodataset.connection := ADOConnection1;
      Adodataset.Open;      while not Adodataset.Eof do
      begin
        Memo1.Lines.Add(Adodataset.Fields[0].AsString);
        Adodataset.Next;
      end;
以上的ADOConnection1在同一个单元中测试过了。并且在异常的后面有一个类是的异常。