Page 1 of 1

ORA-22993 on mono/linux

Posted: Wed 12 Aug 2009 11:10
by crazyminsc
Hello, we have problems with letters containing diacritical marks on linux. Collumn type is CLOB.

Windows works just fine, mono linux does not. The problem seems to be diacritical marks, ANSI characters work fine.

Code: Select all

"User ID={0};SID={1};Host={2};password={3};Pooling=true;Min Pool Size={4};Max Pool Size={5};Direct=true"

Code: Select all

Devart.Data.Oracle.OracleParameter param = cmd.CreateParameter()
param.OracleDbType = Devart.Data.Oracle.OracleDbType.Clob;
param.Value = "ĚŠČŘŽÝÁÍÉŮÚŤŇÓěščřžýáíéůúťňó";
we tried also:
Devart.Data.Oracle.OracleLob lob = new Devart.Data.Oracle.OracleLob(Devart.Data.Oracle.OracleDbType.Clob);
System.Text.Encoding a = System.Text.Encoding.GetEncoding(1250);
byte[] pole = a.GetBytes("ĚŠČŘŽÝÁÍÉŮÚŤŇÓěščřžýáíéůúťňó");
lob.Write(pole, 0, pole.Length);
param.OracleValue = lob;
instead of
param.Value = "ĚŠČŘŽÝÁÍÉŮÚŤŇÓěščřžýáíéůúťňó";
Still the same error on linux:


UPDATE PARTNER_POZNAMKA SET POZNAMKA=:p1 WHERE ID=:p2

Code: Select all

ORA-22993: specified input amount is greater than actual source amount
  at xc.u.d () [0x00000] 
  at xc.o.b () [0x00000] 
  at Devart.Data.Oracle.a6.e (Int32 A_0, System.Byte[] A_1, Int32 A_2, Int32 A_3) [0x00000] 
  at Devart.Data.Oracle.a6.a (Int32 A_0, System.Byte[] A_1, Int32 A_2, Int32 A_3) [0x00000] 
  at Devart.Data.Oracle.OracleLob.a (Boolean A_0) [0x00000] 
  at Devart.Data.Oracle.OracleLob.d () [0x00000] 
  at Devart.Data.Oracle.OracleLob.h () [0x00000] 
  at (wrapper remoting-invoke-with-check) Devart.Data.Oracle.OracleLob:h ()
  at Devart.Data.Oracle.OracleParameter.a (OracleDbType A_0, System.Object A_1, System.Byte[] A_2, Int32 A_3, Int32 A_4, Int32 A_5, Int32 A_6, Int32 A_7, Boolean A_8, Devart.Data.Oracle.OracleConnection A_9, ParameterDirection A_10, System.String A_11, Devart.Data.Oracle.at A_12, System.Boolean& A_13) [0x00000] 
  at Devart.Data.Oracle.OracleParameter.a (Devart.Data.Oracle.ap& A_0, Boolean A_1, Devart.Data.Oracle.OracleConnection A_2, System.Byte[] A_3, Devart.Data.Oracle.at A_4, System.Boolean& A_5) [0x00000] 
  at (wrapper remoting-invoke-with-check) Devart.Data.Oracle.OracleParameter:a (Devart.Data.Oracle.ap&,bool,Devart.Data.Oracle.OracleConnection,byte[],Devart.Data.Oracle.at,bool&)
  at Devart.Data.Oracle.OracleCommand.a (Int32 A_0, Devart.Data.Oracle.OracleParameterCollection A_1, Devart.Data.Oracle.at A_2, System.Boolean& A_3) [0x00000] 
  at Devart.Data.Oracle.OracleCommand.a (CommandBehavior A_0, IDisposable A_1, Int32 A_2, Int32 A_3) [0x00000] 
  at Devart.Common.DbCommandBase.ExecuteDbDataReader (CommandBehavior behavior) [0x00000]

Posted: Wed 12 Aug 2009 12:21
by Shalex
Please try setting the Unicode=true; parameter in your connection string. Does it help?

Posted: Wed 12 Aug 2009 12:48
by crazyminsc
Yes it works. Thank you for fast and helpful response.