ORA-22993 on mono/linux

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
Posts: 9
Joined: Tue 19 May 2009 16:32

ORA-22993 on mono/linux

Post by crazyminsc » Wed 12 Aug 2009 11:10

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:


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]

Devart Team
Posts: 8036
Joined: Thu 14 Aug 2008 12:44

Post by Shalex » Wed 12 Aug 2009 12:21

Please try setting the Unicode=true; parameter in your connection string. Does it help?

Posts: 9
Joined: Tue 19 May 2009 16:32

Post by crazyminsc » Wed 12 Aug 2009 12:48

Yes it works. Thank you for fast and helpful response.

Post Reply