調用存儲過程out
call sp_add();
是不是你定義的過程有問題吧,並沒有指出返回結果來
像我這樣是可以的:
CREATE PROCEDURE sp_add(a int, b int,out c int)
begin
set c=a+ b;
end;
調用過程:
call sp_add (1,2,@a);
select @a;
② oracle的存儲過程怎麼調用有out值參數的存儲過程
聲明與out參數類型一致的變數,然後與普通的存儲過程一樣調用它(傳參時,out參數的位置傳入你聲明的那個變數就可以)就行了。
③ mysql怎麼調用out參數的存儲過程
CREATE PROCEDURE [CHARACTER]
@a varchar(20),@b varchar(20),@c varchar(20) output
AS
declare @d int
--begin
select @d=charindex(@a,@b,1)
print @d
if @d=1
begin
set @c='一樣'
print @c
end
else
begin
set @c='不同'
print @c
end
GO
在查詢分析器中:[CHARACTER] 'Hello','Hello Word!',''
④ 寫PL/SQL存儲過程的時候用OUT 有什麼作用
表示這是存儲過程的輸出,調用存儲過程的返回值
⑤ 使用out的存儲過程與函數有什麼區別
1. 返回值的區別,函數有1個返回值,而存儲過程是通過參數返回的,可以有多個或者沒有2.調用的區別,函數可以在查詢語句中直接調用,而存儲過程必須單獨調用.函數一般情況下是用來計算並返回一個計算結果而存儲過程一般是用來完成特定的數據操作(比如修改、插入資料庫表或執行某些DDL語句等等)參數的返回情況來看:如果返回多個參數值最好使用存儲過程,如果只有一個返回值的話可以使用函數;從調用情況來看:如果在SQL語句(DML或SELECT)中調用的話一定是存儲函數或存儲的封裝函數不可以是存儲過程,但調用存儲函數的時候還有好多限制以及函數的純度等級的問題.oracle函數和存儲過程最大的區別就在於,函數必須帶上一個return返回值,後面跟的是返回值的類型,而存儲過程可以不帶任何返回值。另外,存儲過程和函數同樣支持in,out,in out這三種類型的參數,對應的是分別指明輸入性的參數、輸出型的參數、輸入輸出型的參數。也就是說如果我們需要返回多個值,除了可以使用存儲過程來實現之外,也可以用函數來實現,方法是你將其中一個用return來返回,其他就指明該數據為out參數就可以了。Oracle中存儲過程和函數都可以返回值,但是函數必須要返回值,並一般只返回一個值,而存儲過程則沒有這個限制。從一般應用上來看,如果不需要返回值或者需要多個返回值,使用存儲過程,如果只用一個返回值,就使用函數,從一般程序員的習慣上來看,這樣更符合思維。
⑥ oracle怎麼在存儲過程里調用out參數的存儲過程
在所定義的存儲過程中,參數的名字後面加上out即可。
例如:
create or replace procere pr1(id in varchar2, name out varchar2)
is
begin
select table_name into name from table1 where table_id = id;
end pr1;
其中存儲過程pr1有兩個參數,id是輸入參數,只能向該存儲過程傳入值,用in修飾。name是輸出參數,只能返回該存儲過程的賦與name的結果,用out修飾。
⑦ 如何執行帶有out參數的存儲過程
把exec去了。直接調用 CREATE OR REPLACE TRIGGER TRU_WORKSAL AFTER UPDATE OR DELETE ON WORKSAL FOR EACH ROW DECLARE CALC DATE; BEGIN pad_amt(:new.salmonth,:new.staff); pad_sal(:new.salmonth,:new.staff); END; /