oracle帶返回存儲過程
1. oracle如何執行存儲過程以及如何返回一個table
sql">-- 定義類型
CREATE OR REPLACE TYPE MyTable AS OBJECT(A int, B int, C int);
/
CREATE OR REPLACE TYPE MyTableResult IS TABLE OF MyTable;
/
CREATE OR REPLACE FUNCTION getTestTable return MyTableResult
IS
-- 預期返回結果.
return_Result MyTableResult := MyTableResult();
BEGIN
-- 結果追加一行.
return_Result.EXTEND;
-- 設置結果內容.
return_Result(return_Result.COUNT) := MyTable(A => 1, B=>2, C=>3);
-- 結果追加一行.
return_Result.EXTEND;
-- 設置結果內容.
return_Result(return_Result.COUNT) := MyTable(A => 4, B=>5, C=>6);
-- 結果追加一行.
return_Result.EXTEND;
-- 設置結果內容.
return_Result(return_Result.COUNT) := MyTable(A => 7, B=>8, C=>9);
return return_Result;
END getTestTable;
/
SQL> SELECT
2 A, B, C
3 FROM
4 table( getTestTable() );
A B C
---------- ---------- ----------
1 2 3
4 5 6
7 8 9
SQL>
2. oracle 中用什麼命令執行一個帶參數的存儲過程
具體如下:
1、第一步,創建一個新的存儲過程,見下圖,轉到下面的步驟。
3. Oracle中如何寫帶條件的查詢存儲過程並返回查詢結果集
create or replace procere p_cnt(
p_time in varchar2,---查詢的條件
p_cur out SYS_REFCURSOR)---游標返回
IS
v_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怎麼寫一個無參存儲過程去調用一個有參數有返回值的存儲過程
create
procere
proc_a
as
declare
b
int;
c
varchar2(10);
begin
proc_b(b,
c);
dbms_output.put_line
(c);
end
procere
a;
你照我這個寫吧
proc_b(b,
c);
proc_b是你調用的帶返回參數的存儲過程
b是輸入變數,c是輸出變數
5. oracle存儲過程帶參返回結果集
create or replace procere p_cnt(
p_time in varchar2,---查詢的條件
p_cur out SYS_REFCURSOR)---游標返回
IS
v_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;
6. oracle 中運行存儲過程作為返回值
oracle可以使用out型參數返回值,例如:
--查詢某商品編號是否存在,返回查詢狀態
createorreplaceprocereproc_getGood
(
param_shopIdnumber,--商品編號
param_flagoutnumber--查詢狀態0不存在
)
as
declarev_countnumber(1);
begin
selectcount(*)intov_countfromtb_goodswhereshopid=param_shopid;
ifv_count=0then
param_flag:=0;
else
param_flag:=1;
endif;
end;
7. oracle裡面怎麼調用有返回值的存儲過程
create or replace procere xs_proc(temp_name in varchar2,
temp_num out number) is
num_1 number;
num_2 number;
begin
select yu_wen, shu_xue
into num_1, num_2
from xuesheng
where xing_ming = temp_name;
--dbms_output.put_line(num_1 + num_2);
temp_num := num_1 + num_2;
end;
單個返回值的oracle存儲過程
8. oracle 執行有返回值的存儲過程報錯
P_BOXNO VARCHAR2(1024);
P_BOXNO_NOTE VARCHAR2(1024);
P_MSG VARCHAR2(1024);
DBMS_OUTPUT.PUT_LINE(P_BOXNO || P_BOXNO_NOTE || P_RET || P_MSG);
9. oracle存儲過程中調用帶返回參數的存儲過程
1、return返回值類型:
declare v_return_value number;
v_return_value := spname();
dbms_output.putline(v_return_value);
2、out返回
declare v_return_value number;
spname(:v_return_value);
dbms_output.putline(v_return_value);