|
From: Fabio M. (JIRA) <nh...@gm...> - 2011-04-26 11:58:54
|
[ http://216.121.112.228/browse/NH-2675?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Fabio Maulo closed NH-2675.
---------------------------
Resolution: Not an Issue
This is not the place to know "how" or ask for help.
Please send your questions to the nhusers group.
> Problem in passing user defined data type to stored procedure as parameter
> --------------------------------------------------------------------------
>
> Key: NH-2675
> URL: http://216.121.112.228/browse/NH-2675
> Project: NHibernate
> Issue Type: Bug
> Components: DataProviders / Dialects
> Affects Versions: 3.0.0.GA
> Reporter: Anupam Mishra
>
> HI I am using NHibernate30.As per our requirement we need to send User Defined data type(i.e Custom Data Type ) as a parameter to stored procedure.With ADO.net this is working
> following are my Stored Procedure,Type and domain Object .
>
> *************Store Procedure****************
> create or replace
> PROCEDURE odp_varray_sample_proc(p_cursor out SYS_REFCURSOR,param IN odp_varray_sample_type)
> IS
> BEGIN
> FOR
> counter IN 1..3
> LOOP
> insert into temp_tran (emp_id, emp_name, emp_password, team_associated_with,IS_CAPTAIN,NO_OF_MOM,BALANCE)
> SELECT EMP_ID,EMP_NAME,EMP_PASSWORD,TEAM_ASSOCIATED_WITH,
> IS_CAPTAIN,NO_OF_MOM,BALANCE FROM employee WHERE EMP_ID=param(counter);
> end LOOP;
> open p_cursor for select * from temp_tran;
> delete from temp_tran;
> END odp_varray_sample_proc;
> *****End Stored Procedure**********************
> **TYpe in Database Oracle***********
> create or replace type odp_varray_sample_type as varray(3000) of number;
> ****End Type in Database Oracle******
> *****Domain Object*****************************
> public class odp_varray_sample_type : NHibernate.Type.ImmutableType
> {
> public Int64[] int_array;
> public odp_varray_sample_type()
> : base(new NHibernate.SqlTypes.SqlType(System.Data.DbType.Object))
> {
> }
> public odp_varray_sample_type(Int64[] array)
> : base(new NHibernate.SqlTypes.SqlType(System.Data.DbType.Object))
> {
> this.int_array = array;
> }
> public override object FromStringValue(string xml)
> {
> return xml.ToString();
> }
> public override object Get(System.Data.IDataReader rs, string name)
> {
> return name.ToString();
> }
> public override object Get(System.Data.IDataReader rs, int index)
> {
> return index.ToString();
> }
> public override void Set(System.Data.IDbCommand cmd, object value, int index)
> {
> OracleCommand orclCmd = (OracleCommand)cmd;
>
> orclCmd.Parameters[index].OracleDbType
> = OracleDbType.Int64;
> orclCmd.Parameters[index].CollectionType
> = OracleCollectionType.PLSQLAssociativeArray;
> orclCmd.Parameters[index].Value = value;
> }
> public override string ToString(object val)
> {
> return val.ToString();
> }
> public override string Name
> {
> get
> {
> return Name;
> }
> }
> public override Type ReturnedClass
> {
> get
> {
> return this.GetType();
> }
> }
> }
> *****END Domain Object*****************************
> Error coming as
> Wrong number of argument or type.Please help.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://216.121.112.228/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|