Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak uzyskać wartość dbms.output zwróconą przez blok PL-SQL w C#

Używam następnej metody:

    private string GetDbmsOutputLine()
    {
        OracleCommand command = new OracleCommand
        {
            Connection = <connection>,
            CommandText = "begin dbms_output.get_line(:line, :status); end;",
            CommandType = CommandType.Text
        };

        OracleParameter lineParameter = new OracleParameter("line",  
            OracleType.VarChar);
        lineParameter.Size = 32000;
        lineParameter.Direction = ParameterDirection.Output;
        command.Parameters.Add(lineParameter);

        OracleParameter statusParameter = new OracleParameter("status",  
            OracleType.Int32);
        statusParameter.Direction = ParameterDirection.Output;
        command.Parameters.Add(statusParameter);

        command.ExecuteNonQuery();

        if (command.Parameters["line"].Value is DBNull)
            return null;

        string line = command.Parameters["line"].Value as string;

        return line;
    }

Wywołaj go kilka razy, aby uzyskać wartość wielociągową, ponieważ występują problemy z wywołaniem dbms_output.get_lines za pomocą System.Data.OracleClient.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wprowadzenie do instrukcji FORALL w bazie danych Oracle

  2. Oracle Database Security:Audyt bazy danych

  3. Funkcje numeryczne w Oracle (pełna lista)

  4. Jak sprawdzić, z jakiego poziomu izolacji transakcji korzysta dowolna sesja Oracle?

  5. Używanie funkcji LAG lub Other w klauzuli SUM