//创建包,在包中创建refcursor
CREATE OR REPLACE PACKAGE "TYPES"
AS[code=Java]
TYPE refcursor IS REF CURSOR;
END;//创建存储过程
CREATE OR REPLACE PROCEDURE obtainpartnumberproc (
leftobid IN VARCHAR2,
rst IN OUT TYPES.refcursor
)
IS
v_sqlstring VARCHAR2 (1000);
BEGIN
v_sqlstring :=
'SELECT CLASS2,RIGHT,W2ISBORROWED FROM PDMM31A.ASSMSTRC WHERE LEFT='
|| leftobid; OPEN rst FOR v_sqlstring;
END obtainpartnumberproc;
[/code]//在java中我是这样调用的CallableStatement cstmt = null ;
ResultSet rs = null ;
try{
string callSql = "{ call obtainpartnumberproc( ?,? )}";
//leftobid为一变量
cstmt.setString( 1,leftobid);
cstmt.registerOutParameter( 2,oracle.jdbc.OracleTypes.CURSOR ) ;
cstmt.execute();
rs = ( ResultSet )cstmt.getObject( 2 );
}
可是cstmt.setString( 1,leftobid )报错,错误信息为:java.lang.NullPointerException
,请问朋友那里错了?如何在java中调用上面创建的存储过程?
解决方案 »
- oracle loop循环
- 大家帮忙看下这个sql group by 字句报错“aa:标识符无效”应该怎么写
- 很实际的问题,大家都会遇到哦。。。进来看看吧。
- 求助:VC 连接Oracle 问题
- 游标老是被占满请大家帮忙(已经查阅前面的帖子,没有雷同的!)
- 创建视图显示创建成功,可是在库中却找不到,寻求帮助
- 如何配置Net8 Configuration Assistant能够连接远程(公网)数据库
- Oracle错误:ORA-01033: ORACLE initialization or shutdown in progress
- 请问如何将mysql的数据库导到oracle?
- 请问Oracle安装有多少东东要装
- plsqldev支持oracleXE吗?
- SQL 按照每个小时进行分组的sql语句,高手请!
随便改成个常量试试?
java程序对这个值rs 这个值先进行判断,如果不存在记录,则处理之.
CREATE OR REPLACE PACKAGE "TYPES"
AS
TYPE refcursor IS REF CURSOR;
END; //创建存储过程
CREATE OR REPLACE PROCEDURE obtainpartnumberproc (
leftobid IN VARCHAR2,
rst IN OUT TYPES.refcursor
)
IS
v_sqlstring VARCHAR2 (1000);
BEGIN
v_sqlstring :=
'SELECT CLASS2,RIGHT,W2ISBORROWED FROM PDMM31A.ASSMSTRC WHERE LEFT='
|| leftobid; OPEN rst FOR v_sqlstring;
END obtainpartnumberproc; //在java中我是这样调用的
CallableStatement cstmt = null ;
ResultSet rs = null ;
try{
string callSql = "{ call obtainpartnumberproc( ?,? )}";
//leftobid为一字符串变量
cstmt.setString( 1,leftobid);
cstmt.registerOutParameter( 2,oracle.jdbc.OracleTypes.CURSOR ) ;
cstmt.execute();
rs = ( ResultSet )cstmt.getObject( 2 );
while (rs.next()) {
……
}
}可是cstmt.setString( 1,leftobid )报错,错误信息为:java.lang.NullPointerException ,
不知道错在哪里……我想实现的功能是:将字符串变量传给obtainpartnumberproc存储过程,并且对查询的记录集进行其他的操作!
朋友帮忙看看,我的代码写得有问题吗?
这个值leftobid可能是空值,所以当你引用它的时候,报了空指针异常.
cstm = connection.prepareCall(callSql);