當前位置:首頁 » 編程語言 » plsql循環執行
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

plsql循環執行

發布時間: 2023-06-14 20:41:14

『壹』 在oracle中創建一個存儲過程,來循環獲取 a表中存放的查詢sql語句 並一條一條的執行該sql語句並存下來。

CREATE OR REPLACE PACKAGE BODY PKG_A_TESTPACKAGE IS
PROCEDURE PKG_A_TESTPROCEDURE(PRM_參數 IN VARCHAR2,
PRM_返回值 OUT NUMBER,
PRM_錯誤信息 OUT VARCHAR2) IS
TYPE CURSOR_TYPE IS REF CURSOR;
CUR_SQL CURSOR_TYPE;

TYPE TYP_REC_INFO IS RECORD(
COLUMN VARCHAR2(1000));
LREC_INFO TYP_REC_INFO;

BEGIN
PRM_返回值 := 0;

-- 循環獲取查詢SQL
FOR REC_SQL IN (SELECT 查詢SQL FROM 存放SQL的表 WHERE 條件) LOOP

BEGIN
OPEN CUR_SQL FOR REC_SQL.查詢SQL;
LOOP
-- 獲取查詢的信息
FETCH CUR_SQL
INTO LREC_INFO; --存放查詢結果,這里只針對單列的查詢結果

-- 如果沒有取到退出
EXIT WHEN CUR_SQL%NOTFOUND;

END LOOP;
CLOSE CUR_SQL;
END;

END LOOP;

EXCEPTION
WHEN OTHERS THEN
PRM_返回值 := -1;
PRM_錯誤信息 := '執行PKG_A_TESTPROCEDURE出錯';
END PKG_A_TESTPROCEDURE;
END PKG_A_TESTPACKAGE;

按照你的思路寫的,具體需要根據你自己實際需求修改擴充一下

『貳』 plsql 里,我有一個循環執行語句,如何做才能每執行一次,輸出信息我現在發現是全部執行完成後才

把輸出語句放在循環中間執行就可以了。

例:
for c in cursor loop
【業務邏輯】
dbms_output.put_line('此處循環輸出結果');
end loop;

『叄』 用PLSQL連接orcale ,出現重復執行SQL語句!!!!

很不幸,我遇到和你相同的情況,試了好多種辦法,之前是安裝在F盤的,重新安裝也不起作用.最的將它安裝C盤,莫名其妙的好了,我也不知道什麼原因.

『肆』 plsql中如果我定義一個游標,然後打開這個游標,然後loop循環把查詢出來的數據全部插入自己定義的表中

使用子查詢執行直接裝載
insert /*+APPEND */ into employee(empno,ename,sal,deptno)
select empno,ename,sal,deptno from emp where deptno=20;

注意,要加上「/*+APPEND */",它表示直接裝載方式,當裝載大批量數據時,這是種做法效率很高。

『伍』 plsql for循環如何控制每行輸出的個數

把輸出語句放在循環中間執行就可以了。
例:
for
c
in
cursor
loop

業務邏輯

dbms_output
.put_line('此處循環輸出結果');
end
loop;

『陸』 PL/SQL如何實現並行執行存儲過程

實現的話,這個得看你需求才能寫,一般語法也不是特別麻煩,多學學循環,動態sql的基本可以應付一切了。
執行的話,一般開個sql窗口
begin
存儲過程名(參數1,參數2……);
end;如果沒有參數,括弧里一堆就不用寫了,然後執行即可。