|
java stored procedure делает проблемы
|
|||
---|---|---|---|
#18+
привет разбираюсь тут с stored procedure. написал простую stored procedure (на ява) с помошью developer center , проверил в нем же . все работает. теперь пытаюсь вызвать ее из клиентской апликации , и тут начинаются грабли: ето код stored procedure /** * JDBC Stored Procedure DB2.PROCEDURE1 */ package PACKPROCEDURE1; import java.sql.*; // JDBC classes public class PROCEDURE1 { // public static void getValueBigger2 ( ResultSet[] rs1 ) throws SQLException, Exception public static void procedure1 (String value ) throws SQLException, Exception { // Get connection to the database Connection con = DriverManager.getConnection("jdbc:default:connection"); PreparedStatement stmt = null; boolean bFlag; String sql; sql = "SELECT value FROM DB2.TESTSTOREDPROCEDURE WHERE ID=2"; stmt = con.prepareStatement( sql ); bFlag = stmt.execute(); ResultSet rs = stmt.getResultSet(); while( rs.next() ) { // if data was returned value = rs.getString( 1 ); break; } } } ето код клиента: class jscall_Add_customer { public static void main(String argv[]) { Connection con = null; String url; String procName = ""; CallableStatement callStmt; try { Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); /////////////////////////////////////// // connect /////////////////////////////////////// System.out.println("Trying to connect..."); url = "jdbc:db2:WLDB"; String username = "db2"; String password = "db2"; con = DriverManager.getConnection(url,username, password); con.setAutoCommit(false); ///////////////////////////////////////////////// // prepare the call to the stored procedure ///////////////////////////////////////////////// procName = "PACKPROCEDURE1.PROCEDURE1"; String sql = "CALL " + procName + "(?)"; callStmt = con.prepareCall(sql); callStmt.registerOutParameter (1, Types.CHAR); callStmt.execute(); String result = callStmt.getString(1); System.out.println("result -->"+result); } catch (Exception e) { System.out.println("\nError loading DB2 Driver...\n"); e.printStackTrace(); } } } получаю ошибку : COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL0444N Routine "*ocedure1" (specific name "SQL050530155928460") is implemented with code in library or path "...procedure1", function "PACKPROCEDURE1.procedure1" which cannot be accessed. Reason code: "4". SQLSTATE=42724 at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source) at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source) at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(Unknown Source) at COM.ibm.db2.jdbc.app.DB2PreparedStatement.execute2(Unknown Source) at COM.ibm.db2.jdbc.app.DB2PreparedStatement.execute(Unknown Source) at ACMEJNS.jscall_Add_customer.main(jscall_Add_customer.java:45) в чем может быть проблема. работаю с db2 data base заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2005, 20:05 |
|
|
start [/forum/topic.php?fid=43&fpage=146&tid=1605885]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 407ms |
0 / 0 |