您好我正在尝试从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)
我错过了什么吗?
请帮忙。
答案 0 :(得分:0)
Jdbc正在调用过程,但您定义的是函数。 见例外:
对过程'getData'的请求失败,因为'getData'是一个SQL函数对象
所以你必须将getData定义为过程而不是函数。
答案 1 :(得分:0)
尝试致电document.getElementById('c1').innerHTML = `<ol><li>${ this.a }</li></ol>`;
而不是scs.execute();
答案 2 :(得分:0)
我调用了下面的函数,它起作用了:
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);
}