下面是我写的java存储过程的源码,但就是不能调用该存储过程,是不是有什么环境变量,或参数没有设置啊,还请大家提醒下java 文件:
--------------------------------------------
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class TestDB { public static void InsertDB(int id) throws Exception {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.2.220:1433;user=TEST;password=TEST",
"TEST","TEST");
    Statement stmt = con.createStatement();
    String sql = "insert into TEST(id,name) values(555,'xxxx')" ;
    stmt.executeUpdate(sql);
    stmt.close();  
    }
    catch (Exception e)
    {    
      System.err.println(e.getMessage());
    }
}
}
--------------------------------------------
存储过程:
create or replace PROCEDURE InsertDB
IS language Java
name 'TestDB.InsertDB()';
/
---------------------------------------------
加载java文件编译后的文件:
loadjava -user TEST/TEST TestDB.class
---------------------------------------------
调用存储过程:
call InsertDB();

解决方案 »

  1.   

    在JAVA中我没调用过..我用的是PB..我只知道在PB中调用存储过程..存储过程需要定义一个OUT类型的返回变量..否则就会报错..你试试在存储过程中设置一个OUT类型的返回变量再调调看
      

  2.   

    我的意思是用java写触发器,不是用java调用啊
      

  3.   

    你的 TestDB.InsertDB() 方法有一个参数,
    在定义procedure 中没有包含参数。