『壹』 在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;如果沒有參數,括弧里一堆就不用寫了,然後執行即可。