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
Post a Comment