求助,Oracle数据库中数据参数传递问题
背景:数据库采用ORACLE
在数据访问层
Oracle.DataAccess.Client.OracleParameter pram1 = new Oracle.DataAccess.Client.OracleParameter("p_cursor",Oracle.DataAccess.Client.OracleDbType.RefCursor);
pram1.Direction = ParameterDirection.Output;
cmd.Parameters.Add(pram1);
这里的时候取出的参数是输出是没有问题的
问题是:如何输入时能够把一个集合当输入参数传递给ORACLE的存储过程?以下代码出错提示是参数传递错误。
有经验的朋友们们给点建议,如何我能把一个DataTable集合做为一个传递参数给这个存储过程
代码简单的略写为以下:
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
OracleTransaction txn = conn.BeginTransaction(IsolationLevel.ReadCommitted);
cmd.Transaction = txn;
cmd.CommandText = @"p_insert_dataset_l1";
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter pTable = new OracleParameter("ds_insert", OracleDbType.RefCursor);
pTable.Value = dt; //----这里,组合了一个有行和列的DataTable,并且有内容,传递进入
cmd.Parameters.Add(pTable);
cmd.ExecuteNonQuery();
txn.Commit();
txn.Dispose();
cmd.Dispose();
------解决方案--------------------你可以把DataTable集合序列化为XML,以XML字符串的方式传递给存储过程
然后再数据库中可以解析XML
------解决方案--------------------
同意。传xml字符串
oracle 解析xml字符串
参考http://blog.sina.com.cn/s/blog_a539013401015tdb.html
------解决方案--------------------