在java调用存储过程时,如果数据库中不存在该存储过程
如何在代码中识别出这种情况?
需要与其它种类的SQLException区分开来

解决方案 »

  1.   

    callablestatement 中得它的返回值呢?看下你的程序能不能接收到,从而进行判断,如果根本就没这个存储过程,catch中应该会报错了
      

  2.   

    我想到的一个办法 LZ您可以这样做
    要抓Exception可以写个自定义的Exception
    数据库方 可以加个用SQL判断
    if not exists "pro_name"
    不存在抛出该异常希望还有更好的办法不知道是不是可以将SQL异常分开的办法
      

  3.   

    callablestatement 中得它的返回值呢?看下你的程序能不能接收到,从而进行判断,如果根本就没这个存储过程,catch中应该会报错了
    --------------------------------------
    但catch也可能包括其它SQLException错误,我想区分出来
    to xnjnmn:
    if not exists "pro_name" ,这个不可行吧?
    数据库中完全没有存储过程,这个语句添加在哪儿?
    我想在代码中知道到底是否存在该存储过程,若不存在,则进行另外的处理
      

  4.   

     加在你调用的后面call{pro_name}if  exists "pro_name"这样看 如果为NULL则报不存在 要不就独立一个SQL
      

  5.   

    call{pro_name}if exists "pro_name" 
    在存储过程后面加一个sql代码,是不是有点不伦不类.我们调用存储过程就是为了把sql语句封装起来....真正做java的话还是用callablestatement靠谱点..