可能数据库对union查询表的个数和整个长度的有限制,就像varchar的长度不能大于4000一样,
String sql="insert into my_query_date(fld1,fld2,..fldn) ( ";
int max_tab_num=n;
for (Object obj :systabList)
{
sql+=" select fld1,fld2,..fldn from "+obj.obj +"where name='小王' +union";
i++;
if (i=max_tab_num)
{
sql+=")";
session.connection().createStatement().execute("insert into my_query fld values("+sql+")" );
i=0;
sql="insert into my_query_date(fld1,fld2,..fldn) ( ";
}
}
if (!sql.equals("insert into my_query_date(fld1,fld2,..fldn) ( "))
{
sql+=")";
session.connection().createStatement().execute("insert into my_query fld values("+sql+")" );
}
小学教师实习报告 3.根据拼好的SQL把数据拿出来, 数据就存在my_query_date中;
List sqlList=session.createQuery(my_quert);
for (Object obj :sqlList){
session.createSQLQuery(obj.fld).executeUpdate();
}
4.大功告成,从my_query_date表中拿数据就行了..
设计表结构时,灵活一下,中间注意事务..
上一页 [1] [2]