通过java创建sql server表函数
问题描述:
如果可以通过java创建表函数,我使用了一个简单的sql语句来进行测试。
但是,创建函数需要很长时间才能完成并导致其他db用户超时。
有什么想法?
我使用SQLSERVER 2008速成通过java创建sql server表函数
try {
Statement statement = conn.createStatement();
CallableStatement cs ;
String retValue ;
cs = conn.prepareCall("{? = call dbo.isTableFunctionExists(?)}");
cs.registerOutParameter(1, Types.INTEGER);
lcString = "PAY_UDTF_"+this.textField1.getValue().toString() ;
cs.setString(2, lcString);
cs.execute();
retValue = cs.getString(1);
if (retValue.equals("1")) {
System.out.println("EXISTS");
lcSql = " ALTER ";
}else{
System.out.println("NOT FOUND");
lcSql = " CREATE ";
}
lcSql = lcSql + " FUNCTION [dbo].[" ;
lcSql = lcSql + lcString +"] (@pDate date)";
lcSql = lcSql + " RETURNS TABLE AS RETURN (";
lcSql = lcSql + " SELECT * FROM dbo.HR_EMPLOYMENT hre ";
lcSql = lcSql + " Where @pDate between hre.effective_start_date and hre.effective_end_date) ";
//statement.execute(lcSql);
statement.executeUpdate(lcSql);
statement.close();
System.out.println("COMPLETED");
} catch (Exception e) {
System.out.println("EXCEPTION"+e);
}
return null;
任何帮助,高度赞赏。
感谢,
埃尔默
答
还有那台conn.setAutoCommit(假)线;
在创建函数结束时,我只需发出conn.commit();
非常感谢反正....
埃尔默
您正在使用的数据库驱动程序?你有没有试过改变它?你知道瓶颈在哪里吗?它是否在SQL Server中 - 尝试运行wireshark以确认。 – javamonkey79 2010-11-24 05:46:55