当前位置:首页 » 存储配置 » 存储过程调用数组参数传递

存储过程调用数组参数传递

发布时间: 2022-12-08 00:11:43

‘壹’ jsp调用存储过程是如何把一个数组作为参数传递

没遇到过传数组的,如果要传数组的话,都是把数组组合成一个字符串再传给存储过程,举个例子,存储过程中有select
name
from
student
where
id
in
(idVarArr)这样的语句,
这个idVarArr就是要传递进去的参数,你传入前就把数组变成类似"'id1','id2','id3',..."的字符串再传存储过程就可以了.这是通用处理方式

‘贰’ WebService调用oracle存储过程,传入数组参数

你要在webservice中编写相应的调用存储过程的接口,具体看你应用的什么语言技术。比如下面java调用存储过程如下:
Session session = HibernateSessionFactory.getSession();
//连接对象
Connection conn = null;
//数据集对象
ResultSet rs = null;
//用来取得表列明的 对象
ResultSetMetaData rsmd = null;
CallableStatement proc = null;
conn = session.connection();
conn.setAutoCommit(false);
try {

if (conn != null) {
proc = conn.prepareCall("{call 存储过程包名过程名(n个传入参数对应n个问号,返回参数或游标?占位) }");
// 如下过程PKG_GETDATA有4个传入参数,所有在程序包是PKG_QUERY
//proc = conn.prepareCall("{call PKG_QUERY.PKG_GETDATA(?,?,?,?,?) }");
proc.setString(1, 参数);
//依次按照传入参数顺序与?问号位置传入所有参数
//最后传入n个参数后一位的返回游标
//proc.registerOutParameter(n+1, oracle.jdbc.OracleTypes.CURSOR);
proc.execute();
rs = (ResultSet) proc.getObject(n+1);
conn.commit();
}

可以将上面代码写成一个公用的调用存储过程的通用接口。

别人调用你的webservice 可以具体的参数个数及顺序传递给你的接口,也可以传递一个object数组

‘叁’ mysql的存储过程怎么传入数组参数

没试过往里面传数组,一般都是多传几个参数,把几个参数放入SqlParameter[]中,然后cmd.Parameters.AddRange(pars);
创建方法:
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@PageIndex","ccc"),
new SqlParameter("@PageSize","ccc"),
new SqlParameter("@StrSql","ccc")
};
ccc就是你想传入的值,带@的就是你在存储过程中定义的参数。
算是一种另类的数组吧。要不你就把所有条件组合成一个字符串,中间用特殊符号隔开,到数据库用split方法再分回来,不过这个方法比较麻烦,不推荐

‘肆’ 在pb里调用存储过程的时候,如何传递数组变量

你调用的存储过程需要的变量放在一个数组中了是吧,你的数组是怎么存储变量的,比如:存储过程需要两个变量@year char(4),@month integer,这两个变量是怎么存储在数组中的呢?比如是这样存储的吧 @year + @month ,这样的格式存储的数组
string ls_string,ls_year
integer li_month,li_persion
array a[]
FOR li_count = 1 to LowerBound(arrary) //数组名
ls_string = a[li_count]
li_persion = pos(ls_string,'+')
ls_year = mid(ls_string,1,li_persion - 1)
li_month =integer(mid(ls_string,li_persion + 1 )
DECLARE pc PROCEDURE FOR proc
@year = :ls_year,
@month = :li_month
USING sqlca;

EXECUTE pc ;

NEXT

热点内容
gif在线压缩免费 发布:2025-09-24 00:41:13 浏览:942
tcl脚本if 发布:2025-09-24 00:26:59 浏览:703
苹果手机怎么连个人安卓手机热点 发布:2025-09-24 00:20:46 浏览:130
虚拟专用账号密码在哪里注册 发布:2025-09-23 23:57:20 浏览:177
如何修改魔宝显示屏密码 发布:2025-09-23 23:46:54 浏览:404
服务器网卡双ip地址 发布:2025-09-23 23:41:57 浏览:172
为什么电脑吃鸡连接不上服务器 发布:2025-09-23 23:27:18 浏览:681
吉利帝豪舒适版都有哪些配置 发布:2025-09-23 23:18:57 浏览:307
pythonsystemexit 发布:2025-09-23 23:07:33 浏览:230
安卓手机在哪个平台买好 发布:2025-09-23 23:02:15 浏览:871