Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Jalankan fungsi pl/sql dengan OracleCommand

Kode berikut berfungsi untuk saya.
NB:Kode pl/sql Anda memanggil fungsi KRIST.f_Login, tetapi c# Anda menyebutnya krist.p_login
NB2:Kode pl/sql Anda menggunakan Varchar2, tetapi c# Anda varchar bekas
NB3:Saya menggunakan Oracle.DataAccess.dll
NB4:Saya berasumsi ukuran buffer nilai kembalian Anda bisa 1, tetapi coba ukuran yang berbeda.

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. kueri SQL beberapa kasus mengambil satu baris sebagai beberapa kolom

  2. Bagaimana cara menyalin atau memperbarui indeks dan batasan tabel dari database yang berbeda?

  3. Bagaimana cara memuat sejumlah besar string agar sesuai dengan database Oracle?

  4. Mengapa fungsi agregat tidak diizinkan di klausa where

  5. Menggunakan fungsi MIN dalam klausa memiliki