从 java 调用 SQL 函数时出错
Error while calling SQL function from java
您好,我正在尝试从 java 调用 SQL 函数,但出现以下错误:
com.sybase.jdbc4.jdbc.SybSQLException: The request for procedure 'getData' failed because 'getData' is a SQL function object.
下面java调用函数的代码:
String Id = "123";
String result;
Connection conn = null;
CallableStatement scs = null;
try {
conn = getDatabaseConnection();
String query = "{? = call getData(?)}";
scs = conn.prepareCall(query);
scs.registerOutParameter(1, java.sql.Types.VARCHAR);
scs.setString(2, id);
scs.executeUpdate();
result = scs.getString(1);
和SQL函数如下:
create function getData (@id varchar2) returns char(12)
我错过了什么吗?
请帮忙
Jdbc是调用过程,而你定义的是函数。
查看异常:
过程 'getData' 的请求失败,因为 'getData' 是一个 SQL 函数对象
因此您必须将 getData 定义为过程而不是函数。
尝试调用 scs.execute();
而不是 scs.executeUpdate();
我调用了下面的函数并且它起作用了:
String Id = "123";
String result;
Connection conn = null;
CallableStatement scs = null;
ResultSet resultSet = null;
try {
conn = getDatabaseConnection();
String query = "select db.getData(?) ";
scs = conn.prepareCall(query);
//Set of parameters
scs.setString(1, Id);
//Execution
resultSet = scs.executeQuery();
while (resultSet.next()) {
//Get the result
result = resultSet.getString(1);
}
您好,我正在尝试从 java 调用 SQL 函数,但出现以下错误:
com.sybase.jdbc4.jdbc.SybSQLException: The request for procedure 'getData' failed because 'getData' is a SQL function object.
下面java调用函数的代码:
String Id = "123";
String result;
Connection conn = null;
CallableStatement scs = null;
try {
conn = getDatabaseConnection();
String query = "{? = call getData(?)}";
scs = conn.prepareCall(query);
scs.registerOutParameter(1, java.sql.Types.VARCHAR);
scs.setString(2, id);
scs.executeUpdate();
result = scs.getString(1);
和SQL函数如下:
create function getData (@id varchar2) returns char(12)
我错过了什么吗?
请帮忙
Jdbc是调用过程,而你定义的是函数。 查看异常:
过程 'getData' 的请求失败,因为 'getData' 是一个 SQL 函数对象
因此您必须将 getData 定义为过程而不是函数。
尝试调用 scs.execute();
而不是 scs.executeUpdate();
我调用了下面的函数并且它起作用了:
String Id = "123";
String result;
Connection conn = null;
CallableStatement scs = null;
ResultSet resultSet = null;
try {
conn = getDatabaseConnection();
String query = "select db.getData(?) ";
scs = conn.prepareCall(query);
//Set of parameters
scs.setString(1, Id);
//Execution
resultSet = scs.executeQuery();
while (resultSet.next()) {
//Get the result
result = resultSet.getString(1);
}