求教DB2的变量定义!谢谢先!!!

Tjackyren 2002-12-16 08:56:25
大侠:
你好!我是一个db2初学者,又一问题请教!!!请务必帮忙!谢谢先!!!
请问在db2里如何像sql server里那样定义变量?(declare @aaa int)我想在db2里完成像如下sql server 脚本的功能,

在哪儿运行脚本?请问各位大侠帮忙看看(

如果解决问题了一定揭帖、给分,决不食言)

declare cur_emp scroll cursor for --定义游标

select NameCol from table2


open cur_emp --打开游标

declare @i int
select @i=0

while (@i<@@cursor_rows) --如果没有结束

begin
declare @TempName varchar(64)

fetch next from cur_emp into @TempName --操作游标数据
--print @TempName

UPDATE table2 SET NameCol ='x'+right(NameCol ,(len(NameCol)-1)) WHERE NameCol=@TempName --修改游标访问

的纪录

select @i=@i+1

end
...全文
467 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
db2_seeker 2002-12-19
  • 打赏
  • 举报
回复
declare v_i int;
declare sqlcode int default 0 ;
declare v_TempName varchar(64);
declare cur_emp scroll cursor for --定义游标
select NameCol from table2;
open cur_emp ; --打开游标
set v_i=0;
while sqlcode = 0 do --如果没有结束

fetch cur_emp into v_TempName --操作游标数据
UPDATE table2 SET NameCol ='x'+right(NameCol ,(length(NameCol)-1)) WHERE NameCol=v_TempName; --修改游标访问

的纪录
end while;



记住:所有的声明变量语句全部在最前面!
ddvboy 2002-12-16
  • 打赏
  • 举报
回复
你是用什么语句执行的?
Mr_Bean 2002-12-16
  • 打赏
  • 举报
回复

那你用query执行的sql?那么query的databasename是不是写对了?
,mmm.
/, .\
(|Q v Q |) 啊!原来天不只一个井那么大....
_______mm\__e__/mm________
|___|___|___|___|___|___|_
__|___|___|___|___|___|___
Tjackyren 2002-12-16
  • 打赏
  • 举报
回复
是的!
Mr_Bean 2002-12-16
  • 打赏
  • 举报
回复
你用什么database engine? BDE?
Tjackyren 2002-12-16
  • 打赏
  • 举报
回复
同时想问问如何在c++ builer 里连接db2数据库?联是联通了,但是一执行sql语句就报“generate sql error:alias :**”
Tjackyren 2002-12-16
  • 打赏
  • 举报
回复
但是宿主变量要在c或其他的开发语言中定义的!我是想在纯sql语句写的!
Mr_Bean 2002-12-16
  • 打赏
  • 举报
回复
/*声明宿主变量*/
EXEC SQL BEGIN DECLARE SECTION;
char vCKDID[29],vCKLX[19],vJGBH[11],vKFBH[5],vKWBH[7],vWLBH[21],vSX[9],vZTJG[11],vDWBH[11],vCKDBH[19];
char vPCH[29],vJLDW[11],vSJC[27],vCKRQ[11],vXSDBH[19],vXSDDBH[19],vXSLX[19],vDWJC[19],vDJXLH[21],vCKBZ[101];
short vNUM,vHLBJ,vXH,iPCH,iSFSL,iCKDJ,iXSDBH,iXSDDBH,iZTJG,iDWJC,iCKBZ;
double vSFSL,vCKDJ,vZHGX,vCKCE;
EXEC SQL END DECLARE SECTION;
使用宿主变量:
exec sql select count(*) into :vNUM
from T_ckd where ckdid = :vCKDID ;

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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