① 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;