① 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);