如何用变量来代替表名?

hellof1 2002-03-11 03:13:59
select cp_xh,cp_ph
into :ls_cpxh,:ls_cpph
from table
where cp_bh="0001";
我想能否变量来代替表(table)的名称
该如何实现?
...全文
72 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gungod2000 2002-03-11
  • 打赏
  • 举报
回复
要用到动态的sql语句

DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;
long ll_count
String Sqlstatement,ls_table
string ls_branch

ls_table = 'tab08_meeting'

Sqlstatament = "SELECT count(id) FROM "+ls_table + " branch = ?.... "
PREPARE SQLSA FROM :Sqlstatement ;
OPEN DYNAMIC my_cursor using :ls_branch ;
FETCH my_cursor INTO :ll_count ;
CLOSE my_cursor ;
byfq 2002-03-11
  • 打赏
  • 举报
回复
up
sincerity 2002-03-11
  • 打赏
  • 举报
回复
动态 SQL ,看 PB 的帮助 Dynamic SQL Format 1/2/3/4 。
hwma 2002-03-11
  • 打赏
  • 举报
回复
为什么要代替表名啊,不能理解,谁给咱解释一下,,这是什么一四,为什么要代替呢?
flyerlxg 2002-03-11
  • 打赏
  • 举报
回复
用第二种方法比较容易让人理解
zhanwei 2002-03-11
  • 打赏
  • 举报
回复
用楼上的方法就ok了
yl_yz 2002-03-11
  • 打赏
  • 举报
回复
string p_sql,is_table
p_sql="select cp_xh,cp_ph into :ls_cpxh,:ls_cpph from "+is_table "&
+"where cp_bh="0001"; "
execute immediate :p_sql
using sqlca;
if sqlca.sqlcode<>0 then
ROLLBACK ;

else
commit;
end if
fxliutm 2002-03-11
  • 打赏
  • 举报
回复
select a.cp_xh,a.cp_ph
into :ls_cpxh,:ls_cpph
from table a
where a.cp_bh="0001";
在第三行中的table后边写一个变量,以后在table出现的地方用a代替就可以了。

401

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧