c# - Pass a byte array to oracle stored procedure -


There is a problem passing Oracle stored functionality to the byte array as an input parameter using OPP.NET.

Here is the process signature stored:

  SOPROCEDURE (in the session, in data in RAW)   

Here is the C # code, Call Process:

  var cmd = New Oracle Commands ("SOME_PROCEDURE", _connection); Cmd.CommandType = CommandType.StoredProcedure; Var BT = new byte [] (1,68,0,83,128,1}; OracleParameter sessionId = new OracleParameter ( "dbSessionId", OracleDbType.Decimal, New OracleDecimal (_dbSessionId), parameter Dayrekshnkinput); OracleParameter data = new OracleParameter ( "status data", OracleDbTypekRaw, new OracleBinary (BT), parameter Dayrekshnkinput); cmd.Parameters.Add (sessionId); cmd.Parameters.Add (data); cmd.ExecuteNonQuery ();   

This code fails (the stored procedure throws an exception, which can not get data), because the number 128 in the byte array! If I 128 get 128 on the second number It's okay!

What should I do?

Try it:

  var cmd = new Oracle Command ( "SOME_PROCEDURE", _connection); cmd.CommandType = CommandType.StoredProcedure; Int [] bt = new Int [] (1 , 68,0,83,128,1}; OracleParameter sessionId = new OracleParameter ( "dbSessionId", OracleDbType.Decimal, new OracleDecimal (_dbSessionId), parameter Dayrekshnkinput); OracleParameter Data = New OracleParameter ("Status Data", OracleDbType.Raw, New OracleBinary (BT), Parameter Direction.Input); Cmd.Parameters.Add (sessionId); Cmd.Parameters.Add (data); Cmd.ExecuteNonQuery ();   

This is probably because one byte is small, an int can work because it can contain a large number of

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -