Sybase Oracle SQL 存儲過程的建立和執行

Sybase 存儲過程的建立和執行sql

--返回值爲int的存儲過程
create proc testReturn
@tname varchar(12) ,
@tid int output
as
begin
set @tid = (select testid from Mytest where testname=@tname)
return
end


--返回值爲varchar的存儲過程
create proc testReturnT
@tid int ,
@tname varchar(12) output
as 
begin 
set @tname = (select testname from Mytest where testid=@tid)
return
end
 

--能夠正確執行
declare @tid int 
exec testReturn 'testname', @tid output
select @tid
 

--本意是想直接輸出輸出參數
declare @tname varchar(12)
exec @tname = testReturnT 3,@tname output
select @tname 
--異常:Implicit conversion from datatype 'INT' to 'VARCHAR' is not allowed.  Use the CONVERT function to run this query.

--正確的執行方法 
declare @tname varchar(12)
declare @tid int 
exec @tid = testReturnT 3,@tname output
select @tid
select @tname

--正確執行
declare @tname varchar(12) 
exec testReturnT 3,@tname output
select @tname 

--注意:Sybase存儲過程執行以後 返回值的存儲過程成功與否的Int值

Oracle存儲過程的建立和執行this

--建立
create PROCEDURE testReturn
(tid  in  number ,
tname out NOCOPY varchar2 )
as
begin
select testname into tname from testtable where testid =tid;
end testReturn;

SQL存儲過程的建立和執行spa

--建立
CREATE PROCEDURE procReturn
@tid int ,
@tname varchar(12) output
AS
    select @tname = testname from test1 where testid=@tid
RETURN


--執行
exec procReturn 2,@tname  output
相關文章
相關標籤/搜索