对预处理还是没有掌握。在下面的运用中,总是提示错误,已试了ABCD四种方式。
请高手救我。
........open rq_bcf;
while found do
fetch rq_bcf into rq_;
select rq_; /* 监测rq_值 */
if found=true then
begin
declare bpld_ MEDIUMINT;
declare spld_ MEDIUMINT;
declare zxp_ MEDIUMINT;
#select sum(ss) into bpld_ from bm where bs='b';
#select sum(ss) into spld_ from bm where bs='s';
#select sum(ss) into zxp_ from bm where bs='z';select bm,rq_; /* 监测bm,rq_值 */# A:
#set @asql1=concat('select sum(ss) into ',bpld_,' from ',bm,' where bs=b and rq= ',rq_,';');
# PREPARE STMT1 FROM @asql1;
# EXECUTE STMT1;
#set @asql2=concat('select sum(ss) into ',spld_,' from ',bm,' where bs=s and rq= ',rq_,';');
#PREPARE STMT2 FROM @asql2;
# EXECUTE STMT2;
#set @asql3=concat('select sum(ss) into ',zxp_,' from ',bm,' where bs=z and rq= ',rq_,';');
#PREPARE STMT3 FROM @asql3;
# EXECUTE STMT3;
# B:
#set @asql1=concat('select sum(ss) into ? from ',bm,' where bs=b and rq=?;');
#PREPARE STMT1 FROM @asql1;
#set @bpld_=bpld_;
#set @rq_=rq_;
# EXECUTE STMT1 using @bpld_, @rq_;
#set @asql2=concat('select sum(ss) into ? from ',bm,' where bs=s and rq=?;');
#PREPARE STMT2 FROM @asql2;
#set @spld_=spld_;
#set @rq_=rq_;
# EXECUTE STMT2 using @spld_, @rq_;
#set @asql3=concat('select sum(ss) into ? from ',bm,' where bs=z and rq=?;');
#PREPARE STMT3 FROM @asql3;
#set @zxp_=zxp_;
#set @rq_=rq_;
# EXECUTE STMT3 using @zxp_, @rq_;
# C:
#set @asql1=concat('select sum(ss) into ',bpld_,' from ',bm,' where bs=b and rq=?;');
#PREPARE STMT1 FROM @asql1;
#set @rq_=rq_;
# EXECUTE STMT1 using @rq_;
#set @asql2=concat('select sum(ss) into ',spld_,' from ',bm,' where bs=s and rq=?;');
# PREPARE STMT2 FROM @asql2;
#set @rq_=rq_;
# EXECUTE STMT2 using @rq_;
#set @asql3=concat('select sum(ss) into ',zxp_,' from ',bm,' where bs=z and rq=?;');
# PREPARE STMT3 FROM @asql3;
#set @rq_=rq_;
# EXECUTE STMT3 using @rq_;
# D:
set @asql1=concat('select sum(ss) into bpld_ from ',bm,' where bs=b and rq=?;');
PREPARE STMT1 FROM @asql1;
set @rq_=rq_;
EXECUTE STMT1 using @rq_;
set @asql2=concat('select sum(ss) into spld_ from ',bm,' where bs=s and rq=?;');
PREPARE STMT2 FROM @asql2;
set @rq_=rq_;
EXECUTE STMT2 using @rq_;
set @asql3=concat('select sum(ss) into zxp_ from ',bm,' where bs=z and rq=?;');
PREPARE STMT3 FROM @asql3;
set @rq_=rq_;
EXECUTE STMT3 using @rq_;........
以上语句的背景见http://topic.csdn.net/u/20120611/16/8f42cbcf-92f1-4be1-b208-59f7816ea3de.html
是嵌套在以上帖子的楼主的倒数第二段中的。
游标等均已定义,但是D方式仍提示:ERROR 1327 (42000): Undeclared variable: bpld_
不想发重复帖,但是原帖没人及时回复,故开新帖。
谢谢!
请高手救我。
........open rq_bcf;
while found do
fetch rq_bcf into rq_;
select rq_; /* 监测rq_值 */
if found=true then
begin
declare bpld_ MEDIUMINT;
declare spld_ MEDIUMINT;
declare zxp_ MEDIUMINT;
#select sum(ss) into bpld_ from bm where bs='b';
#select sum(ss) into spld_ from bm where bs='s';
#select sum(ss) into zxp_ from bm where bs='z';select bm,rq_; /* 监测bm,rq_值 */# A:
#set @asql1=concat('select sum(ss) into ',bpld_,' from ',bm,' where bs=b and rq= ',rq_,';');
# PREPARE STMT1 FROM @asql1;
# EXECUTE STMT1;
#set @asql2=concat('select sum(ss) into ',spld_,' from ',bm,' where bs=s and rq= ',rq_,';');
#PREPARE STMT2 FROM @asql2;
# EXECUTE STMT2;
#set @asql3=concat('select sum(ss) into ',zxp_,' from ',bm,' where bs=z and rq= ',rq_,';');
#PREPARE STMT3 FROM @asql3;
# EXECUTE STMT3;
# B:
#set @asql1=concat('select sum(ss) into ? from ',bm,' where bs=b and rq=?;');
#PREPARE STMT1 FROM @asql1;
#set @bpld_=bpld_;
#set @rq_=rq_;
# EXECUTE STMT1 using @bpld_, @rq_;
#set @asql2=concat('select sum(ss) into ? from ',bm,' where bs=s and rq=?;');
#PREPARE STMT2 FROM @asql2;
#set @spld_=spld_;
#set @rq_=rq_;
# EXECUTE STMT2 using @spld_, @rq_;
#set @asql3=concat('select sum(ss) into ? from ',bm,' where bs=z and rq=?;');
#PREPARE STMT3 FROM @asql3;
#set @zxp_=zxp_;
#set @rq_=rq_;
# EXECUTE STMT3 using @zxp_, @rq_;
# C:
#set @asql1=concat('select sum(ss) into ',bpld_,' from ',bm,' where bs=b and rq=?;');
#PREPARE STMT1 FROM @asql1;
#set @rq_=rq_;
# EXECUTE STMT1 using @rq_;
#set @asql2=concat('select sum(ss) into ',spld_,' from ',bm,' where bs=s and rq=?;');
# PREPARE STMT2 FROM @asql2;
#set @rq_=rq_;
# EXECUTE STMT2 using @rq_;
#set @asql3=concat('select sum(ss) into ',zxp_,' from ',bm,' where bs=z and rq=?;');
# PREPARE STMT3 FROM @asql3;
#set @rq_=rq_;
# EXECUTE STMT3 using @rq_;
# D:
set @asql1=concat('select sum(ss) into bpld_ from ',bm,' where bs=b and rq=?;');
PREPARE STMT1 FROM @asql1;
set @rq_=rq_;
EXECUTE STMT1 using @rq_;
set @asql2=concat('select sum(ss) into spld_ from ',bm,' where bs=s and rq=?;');
PREPARE STMT2 FROM @asql2;
set @rq_=rq_;
EXECUTE STMT2 using @rq_;
set @asql3=concat('select sum(ss) into zxp_ from ',bm,' where bs=z and rq=?;');
PREPARE STMT3 FROM @asql3;
set @rq_=rq_;
EXECUTE STMT3 using @rq_;........
以上语句的背景见http://topic.csdn.net/u/20120611/16/8f42cbcf-92f1-4be1-b208-59f7816ea3de.html
是嵌套在以上帖子的楼主的倒数第二段中的。
游标等均已定义,但是D方式仍提示:ERROR 1327 (42000): Undeclared variable: bpld_
不想发重复帖,但是原帖没人及时回复,故开新帖。
谢谢!
解决方案 »
- 看看这mysql语句错在哪里啊
- 求 mysql中 速度最快的分割字符串方法??
- mysql5.04我已经把数据库的字符集设成了gb2312,但是insert中文进去的变成了??,怎么解决啊?
- 请教高手!
- 简单的问题:怎么得到数据库中(MSSQL)某个表最后修改的时间?
- mysql数据插入的问题
- 如何根据DDL语言写的文件在数据库创建表
- 达人,一个delete from的exists子查询在mysql中如可改写?
- mysql 正则 连续数字的判断
- 求助:ERROR 1062 (23000):Duplicate Entry
- mysql中如何计算查询缓存命中率
- 大家好,我想问一个关于游标遍历插入新表出现主键重复的问题
PREPARE STMT1 FROM @asql1;
execute stmt1;
select @bpld_;
具体修改如下:set @asql1=concat('select sum(ss) into @bpld_ from ',bm,' where bs="买盘" and rq=?;');
PREPARE STMT1 FROM @asql1;
set @bpld_=bpld_;
set @rq_=rq_;
EXECUTE STMT1 using @rq_;
谢谢3楼高手的关心。
以后有疑惑再请教。