Session s=this.getSessionFactory().openSession();
Connection con=s.connection();
String procedure = "{?=call fcm(?)}";
CallableStatement cstmt;
try {
cstmt = con.prepareCall(procedure);
cstmt.setString(2,companyid);
cstmt.registerOutParameter(1,java.sql.Types.VARCHAR );//函数返回两个值
cstmt.registerOutParameter(2,java.sql.Types.VARCHAR );
boolean b=cstmt.execute();
String retValue = cstmt.getString(1);
String retvalue2=cstmt.getString(2);
} catch (SQLException e) {
e.printStackTrace();
return null;}finally{s.close();} 执行总是报这样的错(数据库是SQL SERVER2000):
过程 'fcm'的请求失败,因为 'fcm' 是 函数 对象。
路过的朋友如果知道请解答一下,不胜感激!
Connection con=s.connection();
String procedure = "{?=call fcm(?)}";
CallableStatement cstmt;
try {
cstmt = con.prepareCall(procedure);
cstmt.setString(2,companyid);
cstmt.registerOutParameter(1,java.sql.Types.VARCHAR );//函数返回两个值
cstmt.registerOutParameter(2,java.sql.Types.VARCHAR );
boolean b=cstmt.execute();
String retValue = cstmt.getString(1);
String retvalue2=cstmt.getString(2);
} catch (SQLException e) {
e.printStackTrace();
return null;}finally{s.close();} 执行总是报这样的错(数据库是SQL SERVER2000):
过程 'fcm'的请求失败,因为 'fcm' 是 函数 对象。
路过的朋友如果知道请解答一下,不胜感激!
能把函数帖出来看看吗?
Returns @CompanyTree Table (COMPANY_CODE varchar(50),COMPANY_NAME varchar(50))
As
Begin
Insert @CompanyTree Select COMPANY_CODE,COMPANY_NAME From DC_SYS_COMPANY_INFO Where COMPANY_CODE = @StrCompanyId /*获取本结点*/
Insert @CompanyTree Select COMPANY_CODE,COMPANY_NAME From DC_SYS_COMPANY_INFO Where P_COMPANY_ID = @StrCompanyId /*获取一级子结点*/
While @@Rowcount > 0 /*获取一级一下的子结点*/
Insert @CompanyTree Select A.COMPANY_CODE,A.COMPANY_NAME From DC_SYS_COMPANY_INFO A Inner Join @CompanyTree B On A. P_COMPANY_ID = B.COMPANY_CODE And A.COMPANY_CODE Not In (Select COMPANY_CODE From @CompanyTree)
Return
End不知道是不是JAVA中只能调用存储过程?
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]过程 'fmt的请求失败,因为 'fmt'是 函数 对象。
一看这句话就知道,不是这样调用函数的或者是不能请求函数对像啊,你写一个存储过程,然后在存储过程里调用这个函数,Java里调用存储过程
由于我返回的是一个表,直接把它当普通表用就可以了.
pstmt = con.prepareStatement("select * from fmt('"+companyid+"')");
结贴