Hello,

I need some help on an Error
        System.Data.OracleClient.OracleException : ORA-01036  ( Variablename / 
number unvalid )


( using C#, IBatis from SVN from 30.11.2005, oracle 10g (provider: 
oracleClient1.0) )

A breakpoint in SetParameter was reached.
in setter setter.DataParameter.ParameterName and SourceColumn is empty.


Thanks in advance


error :
-------------------
MMServer.DAL.USERS_Test.USERS_Update : System.Data.OracleClient.OracleException 
: ORA-01036: Variablenname/-nummer ungültig


at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle 
errorHandle, Int32 rc)
at System.Data.OracleClient.OracleParameterBinding.Bind(OciHandle statementHandle, NativeBuffer parameterBuffer, OracleConnection connection) at System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean isReader, Boolean needRowid, OciHandle& rowidDescriptor, ArrayList& refCursorParameterOrdinals) at System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciHandle& rowidDescriptor)
at System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean 
needRowid, OciHandle& rowidDescriptor)
at System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
at 
IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteUpdate(IDalSession 
session, Object parameterObject)
at IBatisNet.DataMapper.SqlMapper.Update(String statementName, Object 
parameterObject)
at MMServer.DAL.USERSDB_gen.Update(USERS USERSObject) in e:\projekteweb\lft\medienmanager\mmserver\app_code\dal\gen\usersdb_gen.cs:line 72
at MMServer.DAL.USERS_Test.USERS_Update() in 
e:\projekteweb\lft\medienmanager\mmserver\app_code\dal\gen\db_tests.cs:line 963
-------------------



my query in xml is
-------------------

        <parameterMaps>
                <parameterMap id="USERSSelectParameter" class="USERS">
                        <parameter property="ID" column="ID" />
                        <parameter property="LOGIN" column="LOGIN" />
                        <parameter property="FIRSTNAME" column="FIRSTNAME" />
                        <parameter property="LASTNAME" column="LASTNAME" />
                        <parameter property="ROLE_ID" column="ROLE_ID" />
                        <parameter property="ORG_ID" column="ORG_ID" />
                        <parameter property="REMARK" column="REMARK" 
typeHandler="OracleStringNull" />
                        <parameter property="EXPIRES" column="EXPIRES" />
                        <parameter property="MODIFIED" column="MODIFIED" />
                        <parameter property="DISABLED" column="DISABLED" />
                        <parameter property="ACTIVE" column="ACTIVE" />
                </parameterMap>
        </parameterMaps>

        <update id="Update" parameterMap="USERSSelectParameter" >
                UPDATE USERS SET
                        LOGIN = #LOGIN#,
                        FIRSTNAME = #FIRSTNAME#,
                        LASTNAME = #LASTNAME#,
                        ROLE_ID = #ROLE_ID#,
                        ORG_ID = #ORG_ID#,
                        REMARK = #REMARK#,
                        EXPIRES = #EXPIRES#,
                        MODIFIED = #MODIFIED#,
                        DISABLED = #DISABLED#,
                        ACTIVE = #ACTIVE#
                WHERE
                        ID = #ID#
        </update>



-------------------

my ITypeHandlerCallback
-------------------
        public class OracleVarchar2TypeHandlerCallback : ITypeHandlerCallback
        {
                #region ITypeHandlerCallback members

                public object ValueOf(string sValue)
                {
                        if (sValue == "\0" || sValue == "")
                        {
                                return System.DBNull.Value;
                        } else{
                                return sValue;
                        }
                }

                public object GetResult(IResultGetter getter)
                {
                        if (getter.Value == System.DBNull.Value)
                        {
                                return System.DBNull.Value;
                        } else {
                                string s = getter.Value as string;
                                if (s == "\0")
                                        return "";
                                else
                                        return getter.Value as string;
                        }
                }

                public void SetParameter(IParameterSetter setter, object 
parameter)
                {
                        string s = Convert.ToString(parameter);
                        if (s == string.Empty)
                        {
                                setter.Value = "\0";
                        } else {
                                setter.Value = s;
                        }                       
                }

                #endregion
        } // class OracleVarchar2TypeHandlerCallback
-------------------




--

Kind regards

Uwe
Lesta at SBS-Softwaresysteme.de


Reply via email to