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