Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để gọi một hàm Oracle với Con trỏ tham chiếu là Tham số ngoài từ C #?

Bạn chắc chắn có thể. Có một số vấn đề cần phải cảnh giác nhưng đây là một trường hợp thử nghiệm

create or replace function testodpRefCursor(
                  uniqueId    IN NUMBER 
                 ,resultItems OUT NOCOPY SYS_REFCURSOR) RETURN NUMBER
                 IS

 BEGIN
      OPEN resultItems for select level from dual  connect by level < uniqueId ;
      return 1;
 END testodpRefCursor;
  1. Tôi nhận thấy rằng các hàm thích có Giá trị trả về là GIÁ TRỊ ĐẦU TIÊN paramin bộ sưu tập
  2. BindByName theo mặc định là FALSE, vì vậy nó được mặc định là RẮN THEO VỊ TRÍ

Nếu không thì sẽ khá dễ dàng:

  OracleCommand cmd = new OracleCommand("TESTODPREFCURSOR", con);
  cmd.CommandType   = CommandType.StoredProcedure;
  cmd.BindByName = true;
  // Bind 


  OracleParameter oparam = cmd.Parameters.Add("ReturnValue", OracleDbType.Int64);
  oparam.Direction = ParameterDirection.ReturnValue ;       

  OracleParameter oparam0 = cmd.Parameters.Add("uniqueId", OracleDbType.Int64);
  oparam0.Value = 5 ;
  oparam0.Direction = ParameterDirection.Input;

  OracleParameter oparam1 = cmd.Parameters.Add("resultItems", OracleDbType.RefCursor);
  oparam1.Direction = ParameterDirection.Output;




  // Execute command
  OracleDataReader reader;
  try
  {
    reader = cmd.ExecuteReader();

    while(reader.Read() ){
        Console.WriteLine("level: {0}", reader.GetDecimal(0));  
    }

  } ...

Bây giờ để biết thêm mẫu, hãy truy cập Thư mục chính Oracle của bạn và xem @ các mẫu con trỏ Tham chiếu trong ODP.NET

ví dụ:% oracle client home% \ odp.net \ samples \ 4 \ RefCursor

hth




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tự động tạo danh tính cho cơ sở dữ liệu Oracle thông qua khung Entity?

  2. Oracle, PDO_OCI và OCI8

  3. Gọi thủ tục Oracle với tham số kiểu bộ sưu tập PL / SQL qua .NET

  4. Lược đồ mẫu trên GitHub

  5. Giới thiệu về tập hợp PL / SQL trong cơ sở dữ liệu Oracle