① 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(); //得到存儲過程的輸出參數值
② 兩個輸出參數的存儲過程如何調用
方法可以為void,C#中參數也可以是out類型啊,定義兩個out類型參數接收唄
③ Oracle 帶輸出參數的存儲過程如何調用
create or replace procere detail_cs(a in number, b out number) is
begin
select 1+a into b from al;
end detail_cs;
create or replace procere call_test(a1 in number, b1 out number) is
begin
detail_cs(a1,b1);
end call_test;
④ 關於調用帶輸出參數的oracle存儲過程
可以通過以下方式來進行帶參數存儲過程執行。
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過程已成功完成。
⑤ 如何用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)
⑥ pl/sql 存儲過程調用 帶cursor輸出參數
1.創建表T_MONITOR_DEVICE
創建後的表結構
2.創建存儲纖念過程
create or replace procere ProcTestNew(v_monitordeviceid in number,curdata out sys_refcursor )
As
begin
open curdata for
select ID, IP,PORT from T_MONITOR_DEVICE where id=v_monitordeviceid;--帶參數測試
-- select ID, IP,PORT from T_MONITOR_DEVICE;
end ProcTestNew;
二.java程序中調用
public void TestProc()
{
Connection conn=null;
ResultSet rs=null;
try {
//this.getSession()為昌豎咐hibernate中的Session對象
conn = SessionFactoryUtils.getDataSource(this.getSession().getSessionFactory()).getConnection();
CallableStatement proc = conn.prepareCall("耐純{call ProcTestNew(?,?) }");
BigDecimal b1 = new BigDecimal(1176);
proc.setBigDecimal(1, b1);
proc.registerOutParameter(2, OracleTypes.CURSOR);
⑦ plsql中怎麼調用帶輸出參數的存儲過程
1、首先打開一個的PLSQL Developer的界面中,點擊左上角的工具,如下圖所示。
⑧ db2中存儲過程調用存儲過程的輸出參數怎麼寫
db2 => CREATE PROCEDURE HelloWorld2 ( \
db2 (cont.) => IN vUserName <a href="https://www..com/s?wd=VARCHAR&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">VARCHAR</a>(10), \
db2 (cont.) => OUT vOutValue <a href="https://www..com/s?wd=VARCHAR&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-"target="_blank" class="-highlight">VARCHAR</a>(10), \
db2 (cont.) => INOUT vInOutValue <a href="https://www..com/s?wd=VARCHAR&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">VARCHAR</a>(10)) \
db2 (cont.) => LANGUAGE SQL \
db2 (cont.) => BEGIN \
db2 (cont.) => INSERT INTO test_helloworld \
db2 (cont.) => VALUES('Hello ' || vUserName || vInOutValue); \
db2 (cont.) => SET vOutValue = 'A'; \
db2 (cont.) => SET vInOutValue = 'B'; \
db2 (cont.) => <a href="https://www..com/s?wd=END&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">END</a>
DB20000I SQL 命令成功完成。
db2 => truncate table test_helloworld IMMEDIATE
DB20000I SQL 命令成功完成。
db2 => BEGIN \
db2 (cont.) => DECLARE p_outval VARCHAR(10); \
db2 (cont.) => DECLARE p_inoutval VARCHAR(10); \
db2 (cont.) => SET p_inoutval = '~Hi~'; \
db2 (cont.) => call HelloWorld2('<a href="https://www..com/s?wd=Edward&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">Edward</a>', p_outval, p_inoutval); \
db2 (cont.) => INSERT INTO test_helloworld VALUES('p_outval=' || p_outval); \
db2 (cont.) => INSERT INTO test_helloworld VALUES('p_inoutval=' || p_inoutval)
; \
db2 (cont.) => <a href="https://www..com/s?wd=END&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">END</a>
DB20000I SQL 命令成功完成。
db2 => select * from test_helloworld
<a href="https://www..com/s?wd=DATA&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">DATA</a>
--------------------
Hello <a href="https://www..com/s?wd=Edward&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">Edward</a>~Hi~
p_outval=A
p_inoutval=B
3 條記錄已選擇。
⑨ 含有輸出參數的存儲過程如何進行調用,並且能夠獲得返回值
給你個例子c#
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcere;
cmd.CommandText = SqlProcName;
SqlParameter parmSqlstr = cmd.Parameters.Add("畝陵@sqlstr"槐判, SqlDbType.NVarChar, 4000);
parmSqlstr.Direction = ParameterDirection.Input;
parmSqlstr.Value = SelectCommand;
SqlParameter parmCurrentpage = cmd.Parameters.Add("@currentpage", SqlDbType.Int);
parmCurrentpage.Direction = ParameterDirection.Input;
parmCurrentpage.Value = CurrentPageIndex;
SqlParameter parmPagesize = cmd.Parameters.Add("@pagesize", SqlDbType.Int);
parmPagesize.Direction = ParameterDirection.Input;
parmPagesize.Value = ItemsPerPage;
SqlParameter parmPagecount = cmd.Parameters.Add("@pagecount", SqlDbType.Int);
parmPagecount.Direction = ParameterDirection.Output;--輸出的
SqlParameter parmRecordcount = cmd.Parameters.Add("@recordcount", SqlDbType.Int);
parmRecordcount.Direction = ParameterDirection.Output;
//鉛耐改 創建 DataAdapter
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
sda.Fill(ds);
recordcount = (int)parmRecordcount.Value;
pagecount = (int)parmPagecount.Value;
cmd.Parameters.Clear();
sda.Dispose();
}
⑩ oracle中帶輸出參數的存儲過程怎麼調用
--
查看存儲過程執行時的列印信息
set
serveroutput
on
--
執行存儲過程
execute
$proc_name;
--
帶有輸出參數的情況下
var
$variable
$type($length);
execute
$proc_name(:$variable);
--
查看存儲過程內容
單引號內大寫
select
text
from
all_source
where
type='procere'
and
name='$proc_name'
(and
owner='$owner');
--
重新編譯存儲過程
alter
procere
$proc_name
compile
(debug);