Я попытался вызвать файл jar java, у которого есть метод, который принимает String и boolean в качестве входных параметров.
Хранимая процедура выглядит следующим образом:
CREATE PROCEDURE TBF_STG.PROC( IN in1 VARCHAR(25), OUT out1 BOOLEAN )
LANGUAGE java
PARAMETER STYLE java
DYNAMIC RESULT SETS 1
FENCED
EXTERNAL NAME 'name1:connection.Connect.javastp'
Я вызываю процедуру, как показано ниже:
CALL TBF_STG.PROC('xyz', ?)
Класс java выглядит следующим образом:
public class Connect {
static Connection con = null;
public static void javastp( String name,
Boolean outparm,
ResultSet[] rs
)
throws SQLException
{
Connection con = DriverManager.getConnection( "jdbc:default:connection" );
PreparedStatement stmt = null;
String sql = "SELECT NAME FROM TBF_STG.TEST WHERE NAME = ?";
//Prepare the query with the value of name
stmt = con.prepareStatement( sql );
stmt.setString( 1, name );
//Execute query and set output parm
rs[0] = stmt.executeQuery();
outparm = true;
//Close open resources
if (stmt != null) stmt.close();
if (con != null) con.close();
return;
}
}
Когда я меняю логический параметр на String, он работает нормально, но мне кажется, чтобы он работал с логическим параметром.
Я получаю следующую ошибку в dbeaver:
SQL Error [42724]: Java stored procedure or user-defined function "TBF_STG.PROC", specific name "SQL200804144354782" could not call Java method "javastp", signature "(Ljava/lang/String".. SQLCODE=-4306, SQLSTATE=42724, DRIVER=4.8.86
Может кто-нибудь указать мне правильное направление, поскольку я новичок в DB2.