Oracle
 sql >> база данни >  >> RDS >> Oracle

Изпълнете pl/sql функция с OracleCommand

Следният код работи за мен.
NB:Вашият pl/sql код извика функцията KRIST.f_Login, но вашият c# я извика krist.p_login
NB2:Вашият pl/sql код използва Varchar2, но вашият c# used varchar
NB3:Използвам Oracle.DataAccess.dll
NB4:Предполагам, че размерът на буфера ви за върната стойност може да бъде 1, но опитайте с различни размери.

using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

int RETURN_VALUE_BUFFER_SIZE = 32767; 
OracleCommand cmd = new OracleCommand();
try {
    cmd.Connection = conn;
    cmd.CommandText = "KRIST.f_Login";
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.Add("returnVal", OracleDbType.Varchar2, RETURN_VALUE_BUFFER_SIZE);  
    cmd.Parameters["returnVal"].Direction = ParameterDirection.ReturnValue;

    cmd.Parameters.Add("userName", OracleDbType.Varchar2);
    cmd.Parameters["userName"].Value = "kristian";

    cmd.Parameters.Add("password", OracleDbType.Varchar2);
    cmd.Parameters["password"].Value = "kristian";

    cmd.ExecuteNonQuery();
    string bval = cmd.Parameters["returnVal"].Value.ToString();
    return bval;
} catch (Exception e) {
    // deal with exception 
} finally {
    command.Dispose();
    connection.Close();
    connection.Dispose();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете първите 150 реда, след това следващите 150 и така нататък?

  2. Защо не мога да принудя Oracle 11g да консумира повече процесори за една SQL заявка

  3. ORA-29283:невалидна файлова операция ORA-06512:в SYS.UTL_FILE, ред 536

  4. вмъквания/актуализации/изтривания на регистрационни файлове в база данни на oracle

  5. Заявка за актуализиране - Oracle