首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

怎么向存储过程传数组

2013-03-26 
如何向存储过程传数组?如何向存储过程传数组?,数组在存储过程中如何使用[解决办法]没有办法,不过有一种变

如何向存储过程传数组?
如何向存储过程传数组?,数组在存储过程中如何使用



[解决办法]
没有办法,不过有一种变通方式
把数据组织成一个字符串(可以用特殊的字符分隔),然后到存储过程里面挨个解析出来处理就好了,我一直都是这么干的
[解决办法]
OracleCommand cmd = new OracleCommand( "存储过程名字 ");
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add( "pmUrl ", OracleDbType.Varchar2).Value = Url;
cmd.Parameters[ "pmUrl "].CollectionType = OracleCollectionType.PLSQLAssociativeArray;
int[] BindSize = new int[Url.Length];
for (int x = 0; x < Url.Length; x++)
BindSize[x] = Url[x].Length;

其中 Url是一个字符串类型数组, 这要求你的Oracle.DataAccess是2.0的
最好使用Oracle的那个 不要用System.Data.OracleClient.
[解决办法]
这个存储过程的类型要定义一个table类型
安装oracle客户端之后 安装目录里有个example文件夹
里面的例子说的非常清楚
[解决办法]
type AssocArrayVarchar2 is table of varchar2(256) index by binary_integer;
[解决办法]
CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000)
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

热点排行