① sqlserver中怎样使用游标for循环
给你举个例子
利用游标循环更新、删除MemberAccount表中的数据DECLARE My_Cursor CURSOR --定义游标FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中OPEN My_Cursor; --打开游标FETCH NEXT FROM My_Cursor ; --读取第一行数据WHILE @@FETCH_STATUS = 0 BEGIN --UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --更新 --DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --删除 FETCH NEXT FROM My_Cursor; --读取下一行数据 ENDCLOSE My_Cursor; --关闭游标DEALLOCATE My_Cursor; --释放游标GO
② for 循环中 jdbc executeQuery(sql);出错
参数是string类型,返回类型是DataTable即数据表类型
public DataTable ExecuteQuery(string sql)
{
//实例化一个SqlDataAdapter对象,构造函数的参数是string类型的sql和数据库连接对象con;SqlDataAdapter对象用来从数据库获取数据填充数据容器DataSet/DataTable
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, con);
//初始化一个数据表对象,将被dataAdapter填充数据
DataTable dataTable = new DataTable();
//try...catch语句用来扑捉程序执行过程中发生的异常
try
{
//调用dataAdapter的Fill方法填充dataTable
dataAdapter.Fill(dataTable);
}
catch (Exception e)
{
//将异常信息输出到控制台
Console.WriteLine(e.Message);
Console.WriteLine(sql);
}
//dataTable是此方法返回的对象,包含了得到的数据
return dataTable;
}
另外,团IDC网上有许多产品团购,便宜有口碑
③ mysql sql中流程控制有for循环吗
delimiter
$$
mysql>
mysql>
CREATE
PROCEDURE
myProc()
//创建while循环的存储过程
if分支语句示例
->
BEGIN
->
->
DECLARE
i
int;
->
SET
i=1;
->
loop1:
WHILE
i<=10
DO
->
IF
MOD(i,2)<>0
THEN
/*Even
number
-
try
again*/
->
SELECT
CONCAT(i,"
is
an
odd
number");
->
END
IF;
->
SET
i=i+1;
->
END
WHILE
loop1;
->
END$$
Query
OK,
0
rows
affected
(0.00
sec)
这种也可以
④ mysql sql中流程控制有for循环吗
MySQL不支持FOR loops循环。
只有LOOP循环:
[begin_label:] LOOP
statement_list
END LOOP [end_label]
CREATE PROCEDURE doiterate(p1 INT)
BEGIN
label1: LOOP
SET p1 = p1 + 1;
IF p1 < 10 THEN
ITERATE label1;
END IF;
LEAVE label1;
END LOOP label1;
SET @x = p1;
END;
LOOP实现了一个简单的循环结构,允许重复执行语句列表,该列表由一个或多个语句组成,每个语句以分号(;)分隔符结束。 循环中的语句将重复执行,直到循环终止。 一般情况,通过LEAVE终止循环。 在函数中,也可以使用RETURN,它完全退出函数,也同时终止循环。
(4)sqlfor循环扩展阅读
mysql流程控制结构:
顺序结构:程序从上往下依次执行,
分支结构:程序从两条或多条路径中选中一条去执行,
循环结构:程序在满足一定条件的基础上,重复执行一段代码。
分支结构
1、if函数
功能:实现简单的双分支
语法:
if(表达式1,表达式2,表达式3)
执行顺序:
如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值
应用:任何地方(在begin end中或外面都可以)
2、case结构
情况1:类似于java中的switch语句,一般用于实现等值判断
语法:
CASE 变量|表达式|字段
WHEN 要判断的值 THEN 返回的值1或语句1;
WHEN 要判断的值 THEN 返回的值2或语句2;
...
ELSE 要返回的值n或语句n;
END CASE;
情况2:类似于java中的多重IF语句,一般用于实现区间判断
语法;
CASE
WHEN 要判断的条件1 THEN 返回的值1或语句1;
WHEN 要判断的条件2 THEN 返回的值2或语句2;
...
ELSE 要返回的值n或语句n;
END CASE;
⑤ 如何将动态sql应用到for loop循环中
在你想跳出for循环的地方,用break来跳出。break只能跳出其所在的循环;
1)
for (......) //循环1
{
for (......) //循环2
{
if (condition)
break; // beak跳出循环2,下一条将要运行的语句是 printf("loop 1\n");
}
printf("loop 1\n");
}
⑥ python 执行sql语句,在for循环里面 写sql语句,出错了
数据长不是py的数据长,是数据库报错,表的字段超长了。
⑦ PL/SQL游标FOR循环,报错,为什么。
BEGIN
FOR C IN (SELECT * FROM MAIN_CONTENT_BASE_TEST) LOOP
DBMS_OUTPUT.PUT_LINE('anan0');
END LOOP;
END;
除非你的表不存在或者没有权限,否则一定能执行。
补充:我刚才检查了你的代码,语法没有问题,出问题是你使用了看不见的全角的空格(中文),才导致不能运行,拷贝我上面提供的,就可以跑了。
⑧ PL/SQL 用for循环实现
declare
i int;
j int;
begin
for i in 0..5 loop
dbms_output.put_line(*);
for j in 0<i loop
dbms_output.put_line(" ");
end loop;
end loop;
end;
⑨ 如何使用for循环更新sql 语句
CREAT PROCEDURE tester
AS
BEGIN
SET NOCOUNT ON;
DECLARE @userId varchar(50)
DECLARE @count int
SET @count = 0
SELECT @count = count(*) FROM UserService_User WHERE Account like '%111%'
WHILE @count > 0
BEGIN
SELECT @userId = Id FROM UserService_User WHERE Account like '%111%'
exec UserService_RemoveUserByUserId @userId
SET @count = @count -1
END
END
说明:
1、此存储过程在SQL SERVER 2005上测试通过,值得注意的是,循环体中,语句是使用BEGIN……END包括的,而不是网络上常说的WHILE ……END WHILE结构,其他的循环语句,如LOOP ……UNTIL……END LOOP也不能通过编译,也许是版本的问题,但在SQL SERVER2005中,循环体使用BEGIN……END就可以,而不能使用网络上常说的WHILE ……END WHILE结构。
2、循环体中 UserService_RemoveUserByUserId 是一个存储过程的名称,@userId为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。
⑩ 我想用PLSQL写一个FOR循环
FOR I IN 1..10 LOOP
IF I<>6 AND I<>8 THEN
INSERT INTO MESSAGE(results) VALUES(I);
END IF;
END LOOP;
COMMIT;