oracle数据库,存储过程中自定义数组类型怎么传参 返回
SqlSugar
沟通中
6
190
牧云天熠 发布于2周前
悬赏:0 飞吻
存储过程定义
PROCEDURE import_data_to_temp ( p_complete_subinventory_code IN VARCHAR2, p_complete_locator IN VARCHAR2, p_created_by IN VARCHAR2, p_source_line_id IN msi_collection_types.number_aat, p_header_id OUT NUMBER, p_line_id OUT msi_collection_types.number_aat, p_error_message OUT VARCHAR2)
类型定义
type number_aat is table of number index by simple_integer;
ado调用传参
cmd.Parameters.Add(new OracleParameter { ParameterName = "@p_complete_subinventory_code ", OracleDbType = OracleDbType.Varchar2, Value = mHeader.SubinventoryCode });
cmd.Parameters.Add(new OracleParameter { ParameterName = "@p_complete_locator", OracleDbType = OracleDbType.Varchar2, Value = DBNull.Value });
cmd.Parameters.Add(new OracleParameter { ParameterName = "@p_created_by", OracleDbType = OracleDbType.Varchar2, Value = mHeader.CreateUser });
cmd.Parameters.Add(new OracleParameter { ParameterName = "@p_source_line_id", CollectionType = OracleCollectionType.PLSQLAssociativeArray, OracleDbType = OracleDbType.Int32, Value = new int[] { mHeader.ReworkOcId }, Size = 1 });
cmd.Parameters.Add(new OracleParameter { ParameterName = "@p_header_id", OracleDbType = OracleDbType.Int32, Direction = ParameterDirection.Output });
cmd.Parameters.Add(new OracleParameter { ParameterName = "@p_line_id", CollectionType = OracleCollectionType.PLSQLAssociativeArray, OracleDbType = OracleDbType.Int32, Direction = ParameterDirection.Output, Size = 10 });
cmd.Parameters.Add(new OracleParameter { ParameterName = "@p_error_message", OracleDbType = OracleDbType.Varchar2, Size = 2000, Direction = ParameterDirection.Output });
热忱回答(6)
-
fate sta VIP0
2周前varp=newSugarParameter("@p",value);p.IsArray=true;上面是数组参数用法
0 回复 -
fate sta VIP0
2周前如果是oupput可以这样
p.Direction = System.Data.ParameterDirection.Output;
0 回复 -
牧云天熠 VIP0
2周前@fate sta:试过了,会报错:System.InvalidOperationException: 'OracleParameter.ArrayBindSize is invalid'
0 回复 -
fate sta VIP0
2周前写个简单一个参数存储过程,你ADO.NET能跑的我给你转成sqlsugar能跑的。
0 回复 -
fate sta VIP0
2周前parameter.CustomDbType=OracleType.xxx
还有这个属性要指定oracle类型
0 回复 -
牧云天熠 VIP0
2周前@fate sta:加上这个就可以了,多谢!CustomDbType=OracleDbType.xxx
0 回复