儲存過程中如何利用遊標分批提交
1. 建一個type,同時建一個遊標
type temp_type is record(
temp_rowid varchar2(128),
temp_count integer);
type imw_type is table of temp_type;
imw_types imw_type;
cursor temp_cursor is
select a.rowid, count(b.userid)
from im_ecusermsginfo_bak b, im_ecuserstatus a
where b.userid = a.userid
and b.imstatus <> '2'
group by a.rowid;
2.將遊標開啟,每1000條存進一次type中。再從type中獲取資料,執行其他操作。
open temp_cursor;
loop
fetch temp_cursor bulk collect
into imw_types limit 1000;
exit when imw_types.count = 0;
forall i in 1 .. imw_types.count
update im_ecuserstatus a
set a.expmsgcnt = imw_types(i).temp_count
where a.rowid = imw_types(i).temp_rowid;
commit;
end loop;
close temp_cursor;
3.exception要關遊標
exceptionwhen others then
if temp_cursor%isopen then
close temp_cursor;
end if;
相關推薦
sqlserver儲存過程中利用遊標遍歷結果集簡單示例及查詢資料庫時間
本例項用的是sqlserver2005 在儲存過程中遍歷結果,和查詢資料庫中所有 儲存過程名稱 加以處理以文字形式輸出 原始碼: drop procedure findName create procedure findName--建立一個名為findName的儲存過
儲存過程中如何利用遊標分批提交
1. 建一個type,同時建一個遊標 type temp_type is record( temp_rowid varchar2(128), temp_count integer); type imw_type is table of temp_ty
sql server之在儲存過程中利用OpenJson將Json字串轉化為表格
在Sql server2016的版本後,資料庫增加了對Json格式的支援,詳細資訊可以參考微軟官方文件連結 應用背景 線上訂餐系統中,購物車的內容儲存在瀏覽器快取中,所以資料庫關於訂單的設計是訂單表(訂單ID,送貨地址,使用者ID,,,,,),訂單明細表(訂
儲存過程中的遊標使用
儲存過程 1:遊標使用 第一步:遊標宣告: 注:標點符號使用半形 CURSOR C_EMP IS /*宣告顯式遊標*/ SELECT * FROM dc_check_todo; /*遊標聲明後跟SQL語句*/ C_ROW C_EMP%ROWTYPE; /*定義遊標變數,
mysql儲存過程中使用遊標
使用者變數一般以@開頭,作用於全域性範圍 區域性變數需用 declare 定義格式為 declare 變數名 資料型別 [default value]; mysql 資料型別有 int ,float,date,varchar(length)等 宣告的順序必須是 先宣告變
oracle 在儲存過程中寫兩個遊標巢狀迴圈
CREATE OR REPLACE PROCEDURE "PROC_CHZBANKMOTNREC" AS vid NUMBER(19);--id vzdrpriaccount VARCHAR2(1
儲存過程中輸出引數為遊標的時候怎麼處理
http://msdn.microsoft.com/zh-cn/library/ms175498(v=sql.90).aspx Transact-SQL 儲存過程只能將 cursor 資料型別用於 OUTPUT 引數。如果為某個引數指定了 cursor 資料型別,也必
mysql 儲存過程中使用多遊標
mysql的儲存過程可以很方便使用遊標來實現一些功能,儲存過程的寫法大致如下: 先建立一張表,插入一些測試資料: DROP TABLE IF EXISTS netingcn_proc_test; CREATE TABLE `netingcn_proc_test`
Oracle儲存過程中多層巢狀遊標的用法
Oracle sql指令碼程式碼 CREATE OR REPLACE PROCEDURE P_DELETE_QK (pId in NUMBER, deep in NUMBER) AS -- pId = 分類ID deep = 深度,層級 on
Mysql儲存過程中使用多遊標
mysql的儲存過程可以很方便使用遊標來實現一些功能,儲存過程的寫法大致如下: 先建立一張表,插入一些測試資料: DROP TABLE IF EXISTS netingcn_proc_test; CREATE TABLE `netingcn_proc_
mysql 存儲過程中使用遊標中使用臨時表可以替代數組效果
效果 tmp declare ges 必須 eight bold lar ora mysql不支持數組。但有時候需要組合幾張表的數據,在存儲過程中,經過比較復雜的運算獲取結果直接輸出給調用方,比如符合條件的幾張表的某些字段的組合計算,mysql臨時表可以解決這個問題.臨時表
SQL儲存過程中分頁
</pre><pre name="code" class="sql">ALTER proc [dbo].[GetGoodsLsit] ----分頁條件 @StartIndex varchar(20), @PageSize varchar(20), ----排序條件
如何在儲存過程中執行set命令 我來答
1.EXEC使用EXEC命令兩種用種執行儲存程另種執行態批處理所講都第二種用 面先使用EXEC演示例,程式碼1DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT;SET @TableName = 'Orders';SET @Orde
MySql儲存過程中傳參和不傳參以及java中呼叫程式碼
資料庫表結構 1.mysql不傳參寫儲存過程 create procedure product() -- product為儲存過程名稱 begin select * from book; end 呼叫此儲存過程為 CALL product
【轉載】postgresql儲存過程中返回型別
前言 假如需要在pg上面寫儲存過程,那麼返回型別必定是一個疑問點。 一般而言,對於一個查詢語句,為了可以統一動態返回各種資料,我們是不會蠢到每一個儲存過程都額外編寫一個返回型別 譬如: (id,name,password) 之類的,所以在寫的時候肯定會考慮 setof record這個動
儲存過程中一維陣列接受按分割符拆分的資料
declare -- Local variables here i integer; Lar_Input t_Arr.Arrname; --一維陣列接收 按分隔符拆分 begin -- Test statements here Pkg_n_Cst_String.Pr
sql在所有儲存過程中查詢包含某字串的執行語句
直接在查詢分析器中執行以下程式碼就行: 方法一) select name from sysobjects o, syscomments s where o.id = s.id and text like '%test%' and o.xtype = 'P' 方法二)
Oracle 儲存過程中傳送郵件,並支援使用者驗證 中文標題和內容
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
oracle12C資料庫JSON的應用 --PL/SQL儲存過程中JSON解析應用篇
最近有些專案在資料庫oracle中使用到json格式的資料互動,對於oracle12以上的版本都支援JSON格式資料的使用,剛剛接觸的猿們可以到上一篇oracle資料庫使用json的簡單入門,最好參考官方的API文件關於oracle官方API文件對JSON的支援; 下面就比較詳細的說一下,關
mysql中利用遊標遍歷表中的資料時未正常獲取資料
問題描述: mysql中利用遊標遍歷表中的資料時未正常獲取資料 問題重現: 建立儲存過程(mysql) 遊標遍歷的表中對應的資料如下 執行儲存過程時卻並未正常獲取資料 問題分析: 儲存過程中變數的定義不要和我們表中的欄位名相同(不區分大小寫),比如上面問題中的表字段為START