c存儲過程輸出參數值
㈠ SQL server 創建存儲過程,要求該存儲過程能夠實現對輸入的兩個數相加,並將結果輸出。。
一、創建
create proc p_sum
(@a int,
@b int,
@c int output)
as
set @c=@a+@b
--執行
declare @c int
exec p_sum 11 ,2 ,@c output
print @c
二友猜、create proc p_multiply(@a int=0,@b int=0,@c int output)
as
begin
set @c=@a*@b
end
--調用
--declare @a int,@b int,@c int
--select @a=3,@b=2
--exec p_multiply @a,@b,@c output
--select @c
(1)c存儲過程輸出參數值擴展閱讀:
例子:
CREATE PROCEDURE order_tot_amt
@o_id int,
@p_tot int output
AS
SELECT @p_tot = sum(Unitprice*Quantity)
FROM orderdetails
WHERE orderid=@o_id
GO
例子說明:該例子是建立指沒一個簡單的存儲過程order_tot_amt,這個存儲過程根據用戶輸入的訂單ID號碼(@o_id),由訂單明細表 (orderdetails)中計算該訂單銷售總額[單價(Unitprice)*數量(Quantity)],這一金額通過@p_tot這一參數輸出給調用這一存好逗型儲過程的程序。
㈡ C語言 怎麼 調存儲過程
C語言里沒有存儲過程,只有函數,函數調用有兩種方式
傳值調用(call by value)和傳址調用(call by reference)
例如
f1(x)
{
int a;
a=3*1-1;
f2(x,a);
return a+x;
}
f2(int r,int s)
{
int y;
y=2*r+1;
s=x*r;
r=s-y;
return;
}
f1中調用了f2函數,若第一個參數採用傳值方式(無返回值,即f1中x=3 不變,只是把值傳給f2使用而已)第二個參數採用傳址方式(返回的是s的地址引用,即f1中a的值與f2中s的值相等)若x=3,則a+x=24
㈢ oracle帶參(傳入,傳出)的存儲過程怎麼執行
1、新建存儲過程,Create or ReplaceProcere CHK_SYS_EMP 檢查系統工號。
㈣ c程序該怎麼樣調用oracle存儲過程並獲取存儲過程中的輸出參數的值
我以前這樣用pro*c 這樣玩的,僅供參考
EXEC SQL EXECUTE
DECLARE
lsid varchar2(60);
lss_this_error_code number;
BEGIN
proctest(:ls_name,lsid); --ls_name 輸入參數 lss_id 輸出
:chId := lsid;-- lsid 輸出返回給C變數chId
END;
END-EXEC;
㈤ oracle 資料庫中存儲過程輸出情況
1、編寫存儲過程,
create or replace procere test_pro(in_num number)
as
M number;
begin
M := in_num;
if 0 < M then
dbms_output.put_line('輸出SQL語句1');
elsif M < 3 then
dbms_output.put_line('輸出SQL語句2');
else
dbms_output.put_line('nothing');
end if;
end;
㈥ oracle 存儲過程怎麼傳參數
create
table
p_proc(pid
number(2),pname
varchar2(20),pname_class
varchar2(20));
--用於存儲存儲過程和參數名的表並插入四條數據,insert
into
p_proc
values(1,'a','v1');insert
into
p_proc
values(2,'b','v2');insert
into
p_proc
values(3,'c','v3');insert
into
p_proc
values(4,'d','v4');
四個存儲過程的的狀況為:
create
or
replace
procere
v1(v_para
varchar2)asbegin
dbms_output.put_line(v_para);end;create
or
replace
procere
v2(v_para
varchar2)asbegin
dbms_output.put_line(v_para);end;create
or
replace
procere
v3(v_para
varchar2)asbegin
dbms_output.put_line(v_para);end;create
or
replace
procere
v4(v_para
varchar2)asbegin
dbms_output.put_line(v_para);end;如下調用存儲過程的存儲為(請忽略一些測試輸出):