帶參數存儲過程調用
1、首先打開一個的PLSQL Developer的界面中,點擊左上角的工具,如下圖所示。
『貳』 mysql帶參數的存儲過程怎麼調用
調用MySQL存儲過程使用CALL命令
語法:CALL 存儲過程名(參數1[,參數2..]]);
例如:
Call myPro1;
Call myPro2('001');
『叄』 ASPNET怎樣調用一個存儲過程(帶參數的)
ASPNET怎樣調用一個存儲過程(帶參數的)使用的是Ado.NET中的相關的資料庫操作方法。
Ado.NET連接資料庫有以下幾個步驟:
1:使用配置的資料庫連接串,創建資料庫連接 Connection 對象
2:構建操作的sql語句
3:定義command對象
4:打開數據連接
5:執行命令
舉一個例子,刪除操作
public int DeleteStudent3(int stuID)
{
int result = 0;
using (SqlConnection connection = new SqlConnection(connString))
{
SqlCommand objCommand = new SqlCommand(dboOwner + ".usp_DeleteStudent", connection);
objCommand.CommandType = CommandType.StoredProcere;
objCommand.Parameters.Add("@stuID", SqlDbType.Int).Value = stuID;
connection.Open();
result = objCommand.ExecuteNonQuery();
}
return result;
}
『肆』 oracle中怎麼執行帶有輸出參數的存儲過程,在程序中我知道怎麼調用,
1、新建一個存儲過程(Procere)。
『伍』 ASP調用帶參數存儲過程的幾種方式
1. 這也是最簡單的方法,兩個輸入參數,無返回值:
set connection = server.createobject("adodb.connection")
connection.open someDSN
Connection.Execute "procname varvalue1, varvalue2"
''將所有對象清為nothing,釋放資源
connection.close
set connection = nothing
2. 如果要返回 Recordset 集:
set connection = server.createobject("adodb.connection")
connection.open someDSN
set rs = server.createobject("adodb.recordset")
rs.Open "Exec procname varvalue1, varvalue2",connection
''將所有對象清為nothing,釋放資源
rs.close
connection.close
set rs = nothing
set connection = nothing
3. 以上兩種方法都不能有返回值,(Recordset除外),如果要得到返回值,需要用Command的方法。
首先說明,返回值有兩種。一種是在存儲過程中直接return一個值,就象C和VB的函數返回值那樣;另一種是可以返回多個值,存
儲這些值的變數名稱需要在調用參數中先行指定。
這個例子要處理多種參數,輸入參數,輸出參數,返回記錄集以及一個直接返回值(夠全了吧?)
存儲過程如下:
use pubs
GO
-- 建立存儲過程
create procere sp_PubsTest
-- 定義三個參數變數,注意第三個,特別標記是用於輸出
@au_lname varchar (20),
@intID int,
@intIDOut int OUTPUT
AS
SELECT @intIDOut = @intID + 1
SELECT *
FROM authors
WHERE au_lname LIKE @au_lname + ''%''
--直接返回一個值
RETURN @intID + 2
調用該存儲過程的asp程序如下:
<%@ Language=VBScript %>
<%
Dim CmdSP
Dim adoRS
Dim adCmdSPStoredProc
Dim adParamReturnValue
Dim adParaminput
Dim adParamOutput
Dim adInteger
Dim iVal
Dim oVal
Dim adoField
Dim adVarChar
『這些值在 VB 中是預定義常量,可以直接調用,但在 VBScript 中沒有預定義
adCmdSPStoredProc = 4
adParamReturnValue = 4
adParaminput = 1
adParamOutput = 2
adInteger = 3
adVarChar = 200
iVal = 5
oVal = 3
''建一個command對象
set CmdSP = Server.CreateObject("ADODB.Command")
''建立連結
CmdSP.ActiveConnection = "Driver={SQL Server};server=(local);Uid=sa;Pwd=;Database=Pubs"
''定義command 對象調用名稱
CmdSP.CommandText = "sp_PubsTest"
''設置command調用類型是存儲過程 (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc
''往command 對象中加參數
''定義存儲過程有直接返回值,並且是個整數,省缺值是4
CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 4)
''定義一個字元型輸入參數
CmdSP.Parameters.Append CmdSP.CreateParameter("@au_lname", adVarChar, adParaminput, 20, "M")
''定義一個整型輸入參數
CmdSP.Parameters.Append CmdSP.CreateParameter("@intID", adInteger, adParamInput, , iVal)
''定義一個整型輸出參數
CmdSP.Parameters.Append CmdSP.CreateParameter("@intIDOut", adInteger, adParamOutput, oVal)
''運行存儲過程,並得到返回記錄集
Set adoRS = CmdSP.Execute
''把每個記錄列印出來,其中的欄位是虛擬的,可以不用管
While Not adoRS.EOF
for each adoField in adoRS.Fields
Response.Write adoField.Name & "=" & adoField.Value & "<br>" & vbCRLF
Next
Response.Write "<br>"
adoRS.MoveNext
Wend
''列印兩個輸出值:
Response.Write "<p>@intIDOut = 「 & CmdSP.Parameters("@intIDOut").Value & "</p>"
Response.Write "<p>Return value = " & CmdSP.Parameters("RETURN_VALUE").Value & "</p>"
''大掃除
Set adoRS = nothing
Set CmdSP.ActiveConnection = nothing
Set CmdSP = nothing
%>
------------------------------------------------------------------------------------------------------------------------------------
在asp中調用sql server的存儲過程可以加快程序運行速度
1.調用存儲過程的一般方法
先假設在sql server中有一存儲過程dt_users:
CREATE PROCEDURE [dbo].[dt_users]
AS
select * from users
return
GO
第一種方法是不利用command對象,直接用recordset對象
set rs=server.createobject("adodb.recordset")
sql="exec dt_users"
rs.open sql,conn,1,1 這樣就可
第二種方法是利用command對象
set comm=server.createobject("adodb.command")
comm.commantype=4
set comm.activeconnection=conn
comm.commandtext="dbo.dt_users"
set rs=server.createobject("adodb.recordset")
rs.open comm,,1,1
2.給存儲過程傳遞參數
如果存儲過程中不用參數,而是單一的sql語句,還顯示不出調用存儲過程的優勢!
比如說一bbs的查詢,可以按作者和主題查詢!則可以建立存儲過程如下:
參數keyword為關鍵字,choose是選擇查詢的方法。
CREATE PROCEDURE [dbo].[dt_bbs]
@keyword varchar(20)=null,
@choose int=null
as
if @choose=1
select * from bbs where name like @keyword
else
select * from bbs where subject like @keyword
return
go
這樣我們調用存儲過程時只需將參數傳遞過去就行了,而省去在asp中來寫一段程序
用第一種方法:
set rs=server.createobject("adodb.recordset")
sql="exec dt_bbs ''"&keyword&"'',"&choose&""
rs.open sql,conn,1,1
用第二種方法:
set comm=server.createobject("adodb.command")
comm.commantype=4
comm.Parameters.append comm.CreateParameter("@keyword",adChar,adParamInput,50,keyword)
comm.Parameters.append comm.CreateParameter("@keyword",adInteger,adParamInput,,choose)
set comm.activeconnection=conn
comm.commandtext="dbo.dt_bbs"
set rs=server.createobject("adodb.recordset")
rs.CursorType=3
rs.open comm,,1,1
『陸』 在java中怎麼調用帶參數的存儲過程
JDBC調用存儲過程: CallableStatementx0dx0a在Java裡面調用存儲過程,寫法那是相當的固定:x0dx0aClass.forName(....x0dx0aConnection conn = DriverManager.getConnection(....x0dx0a/**x0dx0a*p是要調用的存儲過程的名字,存儲過程的4個參數,用4個?號佔位符代替x0dx0a*其餘地方寫法固定x0dx0a*/x0dx0aCallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");x0dx0a/**x0dx0a*告訴JDBC,這些個參數,哪些是輸出參數,輸出參數的類型用java.sql.Types來指定x0dx0a*下面的意思是,第3個?和第4個?是輸出參數,類型是INTEGER的x0dx0a*Types後面具體寫什麼類型,得看你的存儲過程參數怎麼定義的x0dx0a*/x0dx0acstmt.registerOutParameter(3, Types.INTEGER);x0dx0acstmt.registerOutParameter(4, Types.INTEGER);x0dx0a/**x0dx0a*在我這里第1個?和第2個?是輸入參數,第3個是輸出參數,第4個既輸入又輸出x0dx0a*下面是設置他們的值,第一個設為3,第二個設為4,第4個設置為5x0dx0a*沒設第3個,因為它是輸出參數x0dx0a*/x0dx0acstmt.setInt(1, 3);x0dx0acstmt.setInt(2, 4);x0dx0acstmt.setInt(4, 5);x0dx0a//執行x0dx0acstmt.execute();x0dx0a//把第3個參數的值當成int類型拿出來x0dx0aint three = cstmt.getInt(3);x0dx0aSystem.out.println(three);x0dx0a//把第4個參數的值當成int類型拿出來x0dx0aint four = cstmt.getInt(4);x0dx0aSystem.out.println(four);x0dx0a//用完別忘給人家關了,後開的先關x0dx0acstmt.close();x0dx0aconn.close();x0dx0ax0dx0aJDBC調用存儲過程,掌握這一個程序足夠了.x0dx0a以下是上面程序使用的存儲過程的代碼,我用的是Oracle資料庫,不過不論是什麼資料庫,對於你的程序,JDBC這一端寫法都是一樣的.x0dx0ax0dx0acreate or replace procere px0dx0a(v_a in number,v_b number,v_ret out number,v_temp in out number)x0dx0aisx0dx0abeginx0dx0aif(v_a > v_b) thenx0dx0av_ret := v_a;x0dx0aelsex0dx0av_ret := v_b;x0dx0aend if;x0dx0av_temp := v_temp + 1;x0dx0aend;
『柒』 觸發器怎麼調用帶參存儲過程
觸發器調用帶參存儲過程如下:
1、當向表unit插入的數據後,且objectid>10000時,向表test_tab插入數據。
2、存儲過程:向表test插入調用存儲時的參數。
『捌』 如何用VB6調用帶參數帶輸出的存儲過程
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
有這么這存儲過程。我在VB6裡面該如何調用?
CREATE PROCEDURE Valid(
@CustName varchar(100),
@date varchar(10),
@OUT varchar(5) OUTPUT
)
AS
IF exists(select 1 from ServiceFee
where fee_CustName=@CustName
and (Year(@date) Beeen fee_BeginDate And fee_EndDate)
)
SELECT @OUT='TRUE'
ELSE
SELECT @OUT='FALSE'
GO
解析:
追加參數法調用存儲過程
追加參數通過CreateParameter方法,用來指定屬性創建新的Parameter對象。具體語法如下:
Set parameter = mand.CreateParameter (Name, Type, Direction, Size, Value)
·Name 可選,字元串,代表 Parameter 對象名稱。
·Type 可選,長整型值,指定 Parameter 對象數據類型。
·Direction 可選,長整型值,指定 Parameter 對象類型。
·Size 可選,長整型值,指定參數值最大長度(以字元或位元組數為單位)。
·Value 可選,租好變體型,指定 Parameter 對象值。
這種方法與上面一種方法的分別主要在於,追加參數的方法在向存儲過程傳遞參數時,這種方法首先通過CreateParameter方法為存儲過程創建參數,然後通過Append方法將創建的參數追弊差鉛加到Parameters *** 中去。
仍然以存儲過慶嫌程doc_ProcName的調用為例,關鍵代碼如下:
Dim mRst As ADODB.Recordset 'Recordset 對象表示的是來自基本表或命令執行結果的記錄全集。
Dim prm As ADODB.Parameter 'Parameter 對象代表參數或與基於參數化查詢或存儲過程的Command 對象相關聯的參數。
adoconn.ConnectionString = Adodc1.ConnectionString
adoconn.Open
Set adom.ActiveConnection = adoconn
adom.CommandText = "doc_ProcName"
adom.CommandType = adCmdStoredProc
Set prm = adom.CreateParameter("parameter1", adTinyInt, adParamInput, , "1")
adom.Parameters.Append prm
Set prm = adom.CreateParameter("parameter2", adInteger, adParamOutput)
adom.Parameters.Append prm
Set mRst = adom.Execute
ReturnValue = adom.Parameters(0)
『玖』 sql資料庫中怎樣調用帶參數的存儲過程
在sql
server中
執行帶參數的存儲過程
exec+空格+存儲過程名+空格+參數
多個參數的話用逗號分隔
傳出參數要加output
例如:
exec
P_GetIntegratedFluxOneMoment
@StartTableName,@ColName,@StartTime,@StartValue
output
其中@StartTableName,@ColName,@StartTime,@StartValue都是前面已經定義好的變數
傳入參數也可以不用變數
直接寫值也行
程序中調用的話看你用什麼語言了
各個語言的調用方法不一樣
『拾』 sql資料庫中怎樣調用帶參數的存儲過程
1、使用SQL語句
--a)方式一
--exec存儲過程名稱參數名='值'
execP_Titles_ByType@type='business'
go
--b)方式二
--exec存儲過程名稱參數值
execP_Titles_ByType'business'
2、可視化操作
a.在資料庫中找到要執行的存儲過程
b.右擊存儲過程,在出現的菜單中選擇執行存儲過程選項
c.在新出現的對話框中,在對應的參數後面的值列填入對應的參數值
d.填寫完參數值,最後點擊確定,然後查詢結果會出現
圖-b