sql >> Databáze >  >> RDS >> Oracle

Spusťte funkci pl/sql pomocí OracleCommand

Následující kód mi funguje.
Poznámka:Váš kód pl/sql nazval funkci KRIST.f_Login, ale vaše c# ji nazvalo krist.p_login
NB2:Váš kód pl/sql používal Varchar2, ale vaše c# použitý varchar
NB3:Používám Oracle.DataAccess.dll
NB4:Předpokládám, že velikost vyrovnávací paměti pro návratovou hodnotu by mohla být 1, ale zkuste jiné velikosti.

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. Synchronizujte databázi na ipadu se vzdálenou databází

  2. Kdy mám vnořit PL/SQL BEGIN...END bloky?

  3. Ví někdo, jakou šifrovací techniku ​​používá JDeveloper/SQL Developer k zachování přihlašovacích údajů?

  4. Efektivně vyřešte problém s podezřelou databází serveru SQL Server