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

ストアドプロシージャから、OUTパラメータとOUTカーソルを返し、結果を解析します(Oracle)

    はい、複数のoutパラメータを持つことができます。これは、c#でOracleストアドプロシージャを呼び出すために使用する例です:

    OracleParameter op = null;
    OracleDataReader dr = null;
    
    /* custom code here. Yours would look a little different */
    OracleCommand cmd = (OracleCommand) this.FactoryCache.Connection.CreateCommand();
    
    cmd.CommandText = "pkg_prov_index.getNextPanel";
    cmd.CommandType = CommandType.StoredProcedure;
    
    op = new OracleParameter("pCurrentPanelId", OracleType.VarChar);
    op.Direction = ParameterDirection.Input;
    op.Value = masterProviderIndex.CurrentPanelId;
    cmd.Parameters.Add(op);
    
    op = new OracleParameter("pRefCursor", OracleType.Cursor);
    op.Direction = ParameterDirection.Output;
    cmd.Parameters.Add(op);
    
    op = new OracleParameter("pReturnCode", OracleType.Number);
    op.Direction = ParameterDirection.Output;
    op.Size = 5;
    cmd.Parameters.Add(op);
    
    op = new OracleParameter("pReturnMessage", OracleType.VarChar);
    op.Direction = ParameterDirection.Output;
    op.Size = 4000;
    cmd.Parameters.Add(op);
    
    cmd.ExecuteNonQuery();
    
    returnCode = Convert.ToInt16(cmd.Parameters[2].Value);
    returnMessage = cmd.Parameters[3].Value.ToString();
    
    dr = (OracleDataReader) cmd.Parameters[1].Value;
    
    while (dr.Read()) {
    }
    


    1. Oracle Concurrent Manager –E-BusinessSuite用のCPアナライザー

    2. PHP with MySQL 8.0+エラー:サーバーがクライアントに不明な認証方法を要求しました

    3. Salesforceドライバーは一括アクションをサポートしていますか?

    4. 1列のみのDISTINCT