Java and Oracle(100分)

  • 主题发起人 主题发起人 riverhorse
  • 开始时间 开始时间
R

riverhorse

Unregistered / Unconfirmed
GUEST, unregistred user!
今天搞了很长时间,想从Oracle StoreProcedure中返回一个RecordSet,在JSP中终于可以用
了,但在分装到SessionBean中时,出了点问题,Oracel.CURSTTYPE是与OracleRecordSet
对应的,但OracleRecordSet是没有执行Serializable Interface,所以不可以被传入Jsp中,
有那为可以帮忙解决一下吗?
 
是不是需要一个新类继承OracleRecordSet,执行Serializable Interface接口呢?
 
myRecordSet extend OracleRecordSet implement Seriable{
}
即使我继承了OracleRecordSet,还是没有办法让OraclRecordSet的类型的变量变成可以
序列化的。
 
传递复杂类型的时候,需要自己实现sieriable接口的。
而不是像简单类型那样只要简单的声明一下就可以了。
我碰到过类似问题的解决办法是传递一个二维数组,
或者说一个包含一个二维数组和其他简单数据类型的类。(其他的成员变量可以用来存放结果集的一些信息)
 
河马兄:
不只你如何从oracle storedproc 返回数据集,据我所知oracle没有这种功能。?
望赐教?
 
有点讨厌,因为你要先定义一个oracle的Cursor type,然后把cursor作为一个变量:
具体实现:
package head:
type c_obli is ref cursor return taskobligation%rowtype;
procedure get_obli_list(enterpriseID in varchar2,topicID in varchar2,
enterelatypecode in number,enteGroupID in varchar2,critEnteID in varchar2,
productTypeID in varchar2,rc out pkg_egate.c_obli);
pakage body:
procedure get_obli_list(enterpriseID in varchar2,topicID in varchar2,
enterelatypecode in number,enteGroupID in varchar2,critEnteID in varchar2,
productTypeID in varchar2,rc out pkg_egate.c_obli)
.....
....
在Java中,使用registerObject()
方法,然后再getObject()
 
我不是很清楚
但JB中有个DataSetData类
实现了序列化 并可以读入数据集
只是不清楚Oracle 的数据集可不可以
我对此类问题也有兴趣
只是我关心的是怎样吧ResultSet穿出
给Applet
 
可以试试用ORACLE自带的SQLJ解决方案,详情参考ORACLE 8.1。6 的JAVA REFRENCE。
 
我还是觉得我的方法比较好。
 
还有人发表意见吗?这些答案都不是很可行的方法。
 
我的建议是从Borland公司的一本书上看到的
《JBuilder开发人员指南》
我认为很适用你的问题
另外,我用Oracle的JDBC驱动程序
Thin接口,可以从Applet直接访问数据库
限制是Web服务器和数据库服务器在一起(IP地址一样)
 
用gatekeeper可以穿越网络,web和dataserver不在一起也可以的。
 
多人接受答案了。
 
后退
顶部