更新大表中某個欄位的儲存過程
create or replace procedure pp_temp2 is--用於根據某個表的資料來更新一張大表的某個欄位
cursor cur is --從參考表中獲取需要的欄位,包括待更新的欄位和關聯欄位
select column1,column2,column3
from schema_name.bi_1_tkt t;--可以新增dblink
type typ_column1 is table of tab_1.column1%type;--以下三句根據列格式定義三種型別的集合
type typ_column2 is table of tab_1.column2%type;
type typ_column3 is table of tab_1.column3%type;
lis_column1 typ_column1; --以下三句建立與列型別對應的集合例項
lis_column2 typ_column2;
lis_column3 typ_column3 ;
n_count number; --用於儲存數量
begin
open cur;--開啟遊標
loop
fetch cur bulk collect--每批1000條,將資料分批fetch
into lis_column2,lis_column1,lis_column3 limit 1000;
n_count:=lis_column2.count;
forall i in lis_column2.first .. lis_column2.last--用forall語句更新
update tab_1
set column3=lis_column3(i)
where tab_1.column2=lis_column2(i)
and tab_1.column1=lis_column1(i)
and tab_1.bsp_code = 'XX';
commit;
exit when n_count=0;
end loop;
close cur;--關閉遊標,結束程式
end;
cursor cur is --從參考表中獲取需要的欄位,包括待更新的欄位和關聯欄位
select column1,column2,column3
from schema_name.bi_1_tkt t;--可以新增dblink
type typ_column1 is table of tab_1.column1%type;--以下三句根據列格式定義三種型別的集合
type typ_column2 is table of tab_1.column2%type;
type typ_column3 is table of tab_1.column3%type;
lis_column1 typ_column1; --以下三句建立與列型別對應的集合例項
lis_column2 typ_column2;
lis_column3 typ_column3 ;
n_count number; --用於儲存數量
begin
open cur;--開啟遊標
loop
fetch cur bulk collect--每批1000條,將資料分批fetch
into lis_column2,lis_column1,lis_column3 limit 1000;
n_count:=lis_column2.count;
forall i in lis_column2.first .. lis_column2.last--用forall語句更新
update tab_1
set column3=lis_column3(i)
where tab_1.column2=lis_column2(i)
and tab_1.column1=lis_column1(i)
and tab_1.bsp_code = 'XX';
commit;
exit when n_count=0;
end loop;
close cur;--關閉遊標,結束程式
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26451536/viewspace-761935/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 儲存過程判斷若個表中是否存在某個名稱的欄位儲存過程
- 通用自動為某表某欄位生成複製名稱的儲存過程儲存過程
- 在SQL Server中修改欄位型別和欄位名稱的儲存過程SQLServer型別儲存過程
- 獲取某庫某個儲存過程內容儲存過程
- Sql查詢 一個表中某欄位的資料在另一個表中某欄位中不存在的SQL
- 如何查詢某個資料表中除某個欄位的所有資訊???
- sql去除某個欄位中的某個字串 replaceSQL字串
- 【GP】透過資料字典檢視某個表的欄位
- 查詢某個儲存過程有哪些內容儲存過程
- MySQL 更新一個表裡的欄位等於另一個表某欄位的值MySql
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- 逆向工程通過某個欄位排序排序
- Sqlserver中的儲存過程SQLServer儲存過程
- Mysql資料庫建立儲存過程實現往資料表中新增欄位的方法MySql資料庫儲存過程
- 動態給表新增刪除欄位並同時修改它的插入更新儲存過程儲存過程
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 在儲存過程中建立表的兩種方法儲存過程
- SQL 重新命名錶、欄位、儲存過程名sp_renameSQL儲存過程
- MySQL中修改一個資料庫下包含有某個相同欄位的所有表的欄位長度MySql資料庫
- 轉化某個字母字串為反向大小寫儲存過程字串儲存過程
- 表中已有資料,將表中某個欄位為空的改為非空
- 如何查詢 SAPGUI 螢幕上某個欄位對應的資料庫表儲存的試讀版GUI資料庫
- 儲存過程中巢狀儲存過程的變數執行方式儲存過程巢狀變數
- 查詢當前資料庫存在某個字串的儲存過程資料庫字串儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- 在Oracle 中查詢某個欄位存在於哪幾個表 (轉)Oracle
- PB中呼叫儲存過程儲存過程
- 儲存過程中拼接字串儲存過程字串
- java中呼叫儲存過程Java儲存過程
- 一個儲存過程的問題!儲存過程
- 匯出系統表中的儲存過程和函式儲存過程函式
- db2刪除已經儲存的表儲存過程DB2儲存過程
- oracle儲存過程中的陣列Oracle儲存過程陣列
- ORACLE儲存過程中建立子過程的測試!Oracle儲存過程
- mongodb查詢資料庫中某個欄位中的值包含某個字串的方法MongoDB資料庫字串
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle