帶輸出參數的存儲過程
① 如何用VB6調用帶參數帶輸出的存儲過程
追加參數法調用存儲過程
追加參數通過CreateParameter方法,
用來指定屬性創建新的Parameter對象。具體語法如下:
Set
parameter
=
command.CreateParameter
(Name,
Type,
Direction,
Size,
Value)
·Name
可選,字元串,代表
Parameter
對象名稱。
·Type
可選,長整型值,指定
Parameter
對象數據類型。
·Direction
可選,長整型值,指定
Parameter
對象類型。
·Size
可選,長整型值,指定參數值最大長度(以字元或位元組數為單位)。
·Value
可選,變體型,指定
Parameter
對象值。
這種方法與上面一種方法的分別主要在於,
追加參數的方法在向存儲過程傳遞參數時,
這種方法首先通過CreateParameter方法為存儲過程創建參數,
然後通過Append方法將創建的參數追加到Parameter
s集合中去。
仍然以存儲過程doc_ProcName的調用為例,
關鍵代碼如下:
Dim
mRst
As
ADODB.Recordset
'Recordset
對象表示的是來自基本表或命令執行結果的記錄全集。
Dim
prm
As
ADODB.Parameter
'Parameter
對象代表參數或與基於參數化查詢或存儲過程的Command
對象相關聯的參數。
adoconn.ConnectionString
=
Adodc1.ConnectionString
adoconn.Open
Set
adocomm.ActiveConnection
=
adoconn
adocomm.CommandText
=
doc_ProcName
adocomm.CommandType
=
adCmdStoredProc
Set
prm
=
adocomm.CreateParameter(
parameter1,
adTinyInt,
adParamInput,
,
1)
adocomm.Parameters.Append
prm
Set
prm
=
adocomm.CreateParameter(
parameter2,
adInteger,
adParamOutput)
adocomm.Parameters.Append
prm
② 關於調用帶輸出參數的oracle存儲過程
可以通過以下方式來進行帶參數存儲過程執行。
sql">SQL>createorreplaceproceresp_pro10
2(spnoinnumber,spnameoutvarchar2)is
3begin
4select'ename'intospnamefromal;
5end;
6/
過程已創建。
SQL>setserveroutputon
SQL>DECLARE
2spnonumber;
3spnamevarchar2(10);
4BEGIN
5sp_pro10(spno,spname);
6
7dbms_output.put_line(spname);
8END;
9/
ename
PL/SQL過程已成功完成。
③ oracle中怎麼執行帶有輸出參數的存儲過程,在程序中我知道怎麼調用,
1、新建一個存儲過程(Procere)。
④ java中,怎樣調用帶輸出參數的存儲過程
1、創建帶輸出參數的存儲過程 如: 在查詢分析器中執行declare @mg nvarchar(100)
exec proc_CSCO_SalesFctByStore 100,200,'name',@mg output
print @mg 在Java中調用import java.sql.*;
public class Test{
public static void main(String args[]) throws Exception {//載入驅動DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); //獲得連接
Connection conn = DriverManager.getConnection("jdbc:odbc:mydata", "sa",""); //創建存儲過程的對象
CallableStatement c = conn.prepareCall("{call proc_CSCO_SalesFctByStore(?,?,?,?)}"); //給存儲過程的第一個參數設置值
c.setInt(1, 100); //給存儲過程的第一個參數設置值
c.setInt(2, 10000); //給存儲過程的第一個參數設置值
c.setString(3, user); //注冊存儲過程的第四個參數
c.registerOutParameter(4, java.sql.Types.VARCHAR); //執行存儲過程
c.execute(); //得到存儲過程的輸出參數值
⑤ oracle帶參(傳入,傳出)的存儲過程怎麼執行
1、新建存儲過程,Create or ReplaceProcere CHK_SYS_EMP 檢查系統工號。
⑥ 帶參數的存儲過程如何去寫誰給舉個例子
寫帶有參數存儲過程應該是sql資料庫的問題:
先建立一個表,並添加一些數據來進行演示:
create
table
t_student(
id
int
not
null,
name
nvarchar
(10)
null,
age
tinyint
null,
school
nvarchar(20)
null,
class
nvarchar(10)
null,
score
float
null,
constraint
[pk_student_id]
primary
key
clustered(id)
)
go
insert
into
t_student
values(1,'張小紅',8,'育才小學','一班',92)
insert
into
t_student
values(2,'王麗麗',8,'育才小學','一班',90)
insert
into
t_student
values(3,'張燕',7,'雲華小學','二班',86)
insert
into
t_student
values(4,'劉華',6,'雲華小學','二班',85)
一、exec
exec命令可以執行一個存儲過程也可以執行一個動態sql語句。先來看看怎麼執行存儲過程:
新建一個存儲過程
sp_getstudent
,返回
成績大於90
分的學生:
create
procere
[dbo].[sp_getstudent]
@score
float,
@nums
int
output
as
begin
set
nocount
on;
select
*
from
t_student
where
score
>=@score
select
@nums=count(1)
from
t_student
where
score
>=@score
if(@nums>0)
return
1
else
return
0
end
go
該存儲過程涉及了
查詢操作、返回值和輸出參數,我們來看用exec
命令如何調用:
declare
@return_value
int,
@outnums
int
exec
@return_value
=
[dbo].[sp_getstudent]
@score
=
90,
@nums
=
@outnums
output
select
@outnums
as
n'大於90分的人數'
select
'返回值'
=
@return_value
go
執行結果:
我們發現exec
執行存儲過程和我們平時程序執行一個方法是幾乎一樣的,返回值參數
直接就可以等於存儲過程的執行後的返回值,輸出參數
在後面需要增加
output
關鍵字。
⑦ sql server 中 一個要輸入參數和輸出參數的存儲過程。
1、首先我們需要打開SQL Server Managment管理工具,新建一個表。
⑧ plsql中怎麼調用帶輸出參數的存儲過程
1、首先打開一個的PLSQL Developer的界面中,點擊左上角的工具,如下圖所示。
⑨ 在MySQL中如何創建一個帶輸出參數為一個表類型的存儲過程
在MySQL中如何創建一個帶輸出參數為一個表類型的存儲過程
首先需要知道「另一個存儲過程」的結果集的所有列的類型。
假設「另一個存儲過程」的名字是
sp1
,沒有參數,返回的結果集共3列,全部為int型,那麼「存儲過程」里添加一個與結果集列數相同的臨時表或表變數用於接收「另一個存儲過程」的結果集
如下
CREATE
PROCEDURE
sp2
AS
DECLARE
@t
table(a
int,b
int,c
int)
INSERT
INTO
@t(a,b,c)
EXEC
sp1
SELECT
*
FROM
@t
使用
SQLSERVER
存儲過程可以很大的提高程序運行速度,簡化編程維護難度,現已得到廣泛應用。
創建存儲過程
和數據表一樣,在使用之前需要創建存儲過程,它的簡明語法是:
引用:
Create
PROC
存儲過程名稱
[參數列表(多個以「,」分隔)]
AS
SQL
語句
例:
引用:
Create
PROC
upGetUserName
@intUserId
INT,
@ostrUserName
NVARCHAR(20)
OUTPUT
--
要輸出的參數
AS
BEGIN
--
將uName的值賦給
@ostrUserName
變數,即要輸出的參數
Select
@ostrUserName=uName
FROM
uUser
Where
uId=@intUserId
END
其中
Create
PROC
語句(完整語句為Create
PROCEDURE)的意思就是告訴SQL
SERVER,現在需要建立一個存儲過程,upGetUserName
就是存儲過程名稱,@intUserId
和
@ostrUserName
分別是該存儲過程的兩個參數,注意,在SQL
SERVER中,所有用戶定義的變數都以「@」開頭,OUTPUT關鍵字表示這個參數是用來輸出的,AS之後就是存儲過程內容了。只要將以上代碼在「查詢分析器」里執行一次,SQL
SERVER就會在當前資料庫中創建一個名為「upGetUserName」的存儲過程。你可以打開「企業管理器」,選擇當前操作的資料庫,然後在左邊的樹型列表中選擇「存儲過程」,此時就可以在右邊的列表中看到你剛剛創建的存儲過程了(如果沒有,刷新一下即可)。
二、存儲過程的調用
之前已經創建了一個名為「upGetUserName」的存儲過程,從字面理解該存儲過程的功能是用來取得某一個用戶的名稱。存儲過程建立好了,接下來就是要在應用程序里調用了,下面看一下在ASP程序里的調用。
⑩ 存儲過程參數輸入和輸出參數有什麼作用
無論是輸入的參數還是輸出的參數,在此過程中都視為一個參數,所以一般情況下對應你定義的參數類型和個數帶入,便可調用。
存儲過程後面的是參數列表,其實存儲過程就是個方法,通過傳遞參數來指導方法完成。輸出參數相當於返回值,會帶output關鍵字。
其它參數要提前賦值,而output不需要提前賦值,只需要提供一個變數,在存儲過程執行完的時候,output類型的變數值就會修改,獲得返回值,只能通過這個方法獲得返回值,而不能像函數一樣直接返回結果。因為存儲過程是沒有返回值的。
(10)帶輸出參數的存儲過程擴展閱讀
1、存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。
2、當對資料庫進行復雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此復雜操作用存儲過程封裝起來與資料庫提供的事務處理結合一起使用。
3、存儲過程可以重復使用,可減少資料庫開發人員的工作量。
4、安全性高,可設定只有某些用戶才具有對指定存儲過程的使用權。