sql >> データベース >  >> RDS >> Oracle

OracleCommandを使用してpl/sql関数を実行します

    次のコードが機能します。
    NB:pl / sqlコードは関数KRIST.f_Loginを呼び出しましたが、c#はkrist.p_loginを呼び出しました
    NB2:pl / sqlコードはVarchar2を使用しましたが、c#は使用済み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. JSF入力の中国語文字エンコード

    2. 同じテーブル内の子レコードを削除するMySqlトリガー

    3. mysqlで次の自動インクリメントIDを取得する方法

    4. ウィンドウ関数の決定論的ソート順