Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Thực thi một hàm pl / sql với OracleCommand

Mã sau phù hợp với tôi.
NB:Mã pl / sql của bạn được gọi là hàm KRIST.f_Login, nhưng c # của bạn gọi là krist.p_login
NB2:Mã pl / sql của bạn sử dụng Varchar2, nhưng c # của bạn đã sử dụng varchar
NB3:Tôi đang sử dụng Oracle.DataAccess.dll
NB4:Tôi giả sử kích thước bộ đệm giá trị trả về của bạn có thể là 1, nhưng hãy thử các kích thước khác nhau.

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. Kết nối với Oracle DB bằng Ruby

  2. Cách lấy thông tin về lỗi biên dịch trong Oracle / TOAD

  3. Gửi một mảng giá trị tới thủ tục Oracle để sử dụng trong mệnh đề WHERE IN

  4. Làm thế nào để đặt tên bảng oracle không phân biệt chữ hoa chữ thường?

  5. Tải dữ liệu Clob dưới dạng một Chuỗi (háo hức) thông qua Hibernate's org.hibernate.Query