sybase jdbc驱动程序raiserror行为

时间:2019-03-06 22:59:25

标签: java jdbc ant sybase jconnect

我有两个与下面的模板相似的存储过程。

create proc proc3
as 
begin
    select 'entering proc 3'

    raiserror 20000 'Not implemented'    
    return 1
end

create proc proc2
as 
begin
    select 'entering proc 2'    

    declare @ret int

    exec @ret = proc3

    select 'completred proc3'

    if @ret <> 0
    begin
        select 'error'
    end    
end

proc3-使用raiserror报告错误并返回状态1。

proc2-使用proc3的返回状态,如果其非零,则进行一些错误处理

当我在sql客户端中执行proc2时,得到的返回状态为预期的1,并且还会引发错误-

输出:

entering proc 2
entering proc 3
completred proc3
<along with the error> - Not implemented Msg: 20000, Level: 16, State: 1

当我从Java(通过ant任务)运行相同代码时,没有错误处理代码运行。似乎一旦发现带有SQLException的proc中的raiserror,就会立即停止执行。

有人遇到同样的问题吗,有没有解决的办法?目前尚不清楚这是否是预期的行为。

感谢您的时间和帮助。

0 个答案:

没有答案