ORACLE的FOR迴圈在實際工作中的使用
今天週六在使用者那裡加班,做資料庫中的資料處理工作,只能在沒有業務發生的時候進行,沒辦法!!!
資料處理中涉及的語句,查詢某個欄位的值在表中是否存在:
declare
var1 number;
begin
for item in (SELECT TABLE_NAME,COLUMN_NAME
FROM XG_TABLENAME
union all
SELECT TABLE_NAME,COLUMN_NAME
FROM XG_TABLENAME_QT
) loop
execute immediate 'select count(1) from ' || item.table_name ||
' where ' || item.column_name || ' = ' || '''150422196909030616'''
into var1;
if var1<>0
then
dbms_output.put_line('var1:' || var1 );
dbms_output.put_line( '表:' || item.table_name || '列:' ||item.column_name );
end if ;
end loop;
end;
var1 number;
begin
for item in (SELECT TABLE_NAME,COLUMN_NAME
FROM XG_TABLENAME
union all
SELECT TABLE_NAME,COLUMN_NAME
FROM XG_TABLENAME_QT
) loop
execute immediate 'select count(1) from ' || item.table_name ||
' where ' || item.column_name || ' = ' || '''150422196909030616'''
into var1;
if var1<>0
then
dbms_output.put_line('var1:' || var1 );
dbms_output.put_line( '表:' || item.table_name || '列:' ||item.column_name );
end if ;
end loop;
end;
批次刪除重複資料:
declare
var1 number;
begin
for item in (
SELECT NSRSBH,ZSXH,YZPZXH FROM BAK_SB_PLKK_CFJL_ZSXH_YZPZXH E
WHERE E.ROWID>
(SELECT MIN(X.ROWID) FROM BAK_SB_PLKK_CFJL_ZSXH_YZPZXH X WHERE X.NSRSBH=E.NSRSBH)
) loop
execute immediate 'DELETE FROM SB_SPXX WHERE zsxh= ''' || item.ZSXH||'''';
execute immediate 'DELETE FROM SB_ZSXX WHERE zsxh= ''' || item.ZSXH||'''';
execute immediate 'DELETE FROM sb_yjnsk_lsz WHERE pzhm= ''' || item.YZPZXH||'''';
commit;
end loop;
end;
var1 number;
begin
for item in (
SELECT NSRSBH,ZSXH,YZPZXH FROM BAK_SB_PLKK_CFJL_ZSXH_YZPZXH E
WHERE E.ROWID>
(SELECT MIN(X.ROWID) FROM BAK_SB_PLKK_CFJL_ZSXH_YZPZXH X WHERE X.NSRSBH=E.NSRSBH)
) loop
execute immediate 'DELETE FROM SB_SPXX WHERE zsxh= ''' || item.ZSXH||'''';
execute immediate 'DELETE FROM SB_ZSXX WHERE zsxh= ''' || item.ZSXH||'''';
execute immediate 'DELETE FROM sb_yjnsk_lsz WHERE pzhm= ''' || item.YZPZXH||'''';
commit;
end loop;
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/543979/viewspace-700166/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 14,javase程式碼實戰-迴圈控制——foreach迴圈的使用(五)Java
- 在實際工作中,異常處理的準則
- kotlin的迴圈使用Kotlin
- JavaScript的map迴圈、forEach迴圈、filter迴圈、reduce迴圈、reduceRight迴圈JavaScriptFilter
- pl/sql for loop迴圈的使用SQLOOP
- js在迴圈中使用正則失效異常的坑JS
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- 關於在Oracle儲存過程內使用迴圈及select的其他寫法。Oracle儲存過程
- MySQL常見6個考題在實際工作中的運用MySql
- Python 迴圈語句的使用Python
- Oracle迴圈語句Oracle
- 迴圈中的非同步&&迴圈中的閉包非同步
- 增強for迴圈在Map中的應用
- 使用 call/cc 實現計數迴圈
- for迴圈的理解
- js中在迴圈中使用正規表示式遇到的小坑JS
- Go的迴圈遍歷使用小坑Go
- 13,javase程式碼實戰-迴圈控制——for迴圈輸出空心的菱形(四)Java
- react在jsx語法中實現for迴圈ReactJS
- Oracle PL/SQL迴圈示例OracleSQL
- while + else 使用,while死迴圈與while的巢狀,for迴圈基本使用,range關鍵字,for的迴圈補充(break、continue、else) ,for迴圈的巢狀,基本資料型別及內建方法While巢狀資料型別
- JWT 在專案中的實際使用JWT
- 實際工作中是這樣程式設計的程式設計
- Oracle顯示遊標的使用及遊標for迴圈Oracle
- for迴圈在Python中是怎麼工作的Python
- 記錄在JavaScript中對事件迴圈的理解JavaScript事件
- 探討兩種迴圈表示方法的區別,while迴圈與for迴圈的小總結While
- 15,javase程式碼實戰-迴圈控制——迴圈的終止與過濾(六)Java
- 在 JavaScript 中優雅的提取迴圈內的資料JavaScript
- [譯] 減少 Python 中迴圈的使用Python
- python迴圈語句判斷的使用Python
- 專案管理軟體在實際工作中怎麼應用?專案管理
- 使用增強型for迴圈(for-each)相比傳統的for迴圈有什麼區別?
- Java入門學習-學習if & else,for迴圈,foreach迴圈,while迴圈的用法。JavaWhile
- 迴圈佇列的實現及細節佇列
- 單向迴圈連結串列的實現
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- 在迴圈陣列時使用splice()方法刪除陣列遇到的問題陣列