1樓:
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;
按照你的思路寫的,具體需要根據你自己實際需求修改擴充一下
2樓:
希望能幫到你
oracle中如何寫帶條件的查詢儲存過程並返回查詢結果集 5
3樓:匿名使用者
create or replace procedure p_cnt(p_time in varchar2,---查詢的條件p_cur out sys_refcursor)---遊標返回isv_sql varchar2(1000) :='';
v_date varchar2(20);
begin
v_date := replace(p_time, '-', '');---時間的格式轉換
v_sql := 'select * from dapartment d where d.d_time ='''|| v_date||'''';
end;
open p_cur for v_sql;
end p_cnt;
4樓:
太基礎了吧,建立帶參儲存過程,執行一條查詢語句,在應用程式中接收查詢結果。
用oracle sql 查詢結果集 用集迴圈 並用集的列做if條件 滿足條件後集的列批量插
5樓:傳小奇
declare
cursor my_cursors is select * from t1 where 1=1 --定義遊標bai
my_cursor varchar2(40); --這個資料型別du
根據zhi自己的情況修
dao改。
begin
for my_cursor in my_cursors loopif my_cursor.n1=1 then---做你的
版迴圈裡內
權容end if;
end loop;end
6樓:匿名使用者
用儲存bai
過程du
可以zhi。
for c_row in (select n1,daon2 from t1)
loop
if c_row.n1 = x then
insert into t2 value(c_row.n2,xx);
insert into t2 value(c_row.n2,xx1);
依次類推回
……答end if;
end loop;
關於oracle中建立簡單的儲存過程,求助
open out all for v sql,這個開啟遊標的寫法,你裡面沒定義遊標!v sql nvarchar2 2000 這個資料型別改為。v sql varchar2 2000 說的對,out all沒有定義遊標。sql,建立一個簡單的儲存過程 procgetjc 要求結果是求5 create...
oracle儲存過程的建立和執行問題
1.儲存過程中不能直接select 出結果,定義一些變數 之後select into 變數 2.既然是select就沒有必要用動態sql了,而且你的v sql 拼的有問題 你是在pl sql的sql語句視窗執行的嗎?在sql語句視窗要執行儲存過程的話要用語句塊begin sp ys 201305 5...
oracle定義oracle儲存過程輸出1100之間
翔阿狗 create or replace function isprime num in number return boolean isbegin if num 1 then return false end if for i in 2.num 1 loop if mod num,i 0 the...