当前位置: 代码迷 >> PB >> pb中sql语言的select语句中的表名不能用变量解决方案
  详细解决方案

pb中sql语言的select语句中的表名不能用变量解决方案

热度:51   发布时间:2016-04-29 09:47:59.0
pb中sql语言的select语句中的表名不能用变量
这个问题我在以前的帖子中 找到了,可是答案有些模糊
string cursor_class[13]
/////cursor_class[13],已经赋值,是13个表名
datetime ls_time2
string ls_sql
for i = 1 to 13
ls_sql="select max(datime) :into ls_time2 from " + cursor_class[i] + " USING sourcetrans" ;
execute immediate :ls_sql ;// USING sourcetrans;  
update b
set d_to=:ls_time2 using destinationtrans where d_table=:cursor_class[i];//这个变量放的是表名
commit;
next 


这个红色代码部分有问题,其中有一个变量ls_time2。不知道 怎么处理了

------解决方案--------------------
看来楼主是一定要做了,那就帮写个

int i
string cursor_class[13]

datetime ls_time2
string ls_sql
for i = 1 to 13
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;
ls_sql="select max(datime) from " + cursor_class[i] 
PREPARE SQLSA FROM :ls_sql;
OPEN DYNAMIC my_cursor ;
FETCH my_cursor INTO :ls_time2 ;
CLOSE my_cursor ;

update b set d_to=:ls_time2 where d_table=:cursor_class[i] using destinationtrans;
commit;
next
  相关解决方案