Oracle’da ref cursor yardımı ile select prosedürü yazma ve .Net tarafında çalıştırma

Oracle’da insert, delete, updete prosedürleri bir değer(satır, tablo) döndürmediği için select prosedürüne göre yazımları kolaydır. Select prosedürünü yazarken ise ref cursor kullanmak gerekir.

önce prosedürümüzü yazalım

CREATE OR REPLACE PROCEDURE CALISAN_GOSTER(v_refcur IN OUT SYS_REFCURSOR) IS

BEGIN
OPEN v_refcur FOR SELECT * FROM TBL_CALISAN;
END;

Bu prosedürü compile ettikten sonra .NET tarafında çalıştırmak için şu kodları kullanmamız yeterli

! System.Data.OracleClient sınıfını projenize eklemeyi unutmayın !

  1. public DataTable CalisanGetir()
  2. {
  3. OracleCommand cmd = new OracleCommand();
  4. cmd.CommandType = CommandType.StoredProcedure;
  5. cmd.CommandText = “CALISAN_GOSTER“;
  6. cmd.Parameters.Add
  7. (“v_refcur”, OracleType.Cursor).Direction = ParameterDirection.Output;
  8. DataTable dtblCalisan;
  9. dtblCalisan = new DataTable();
  10. cmd.Connection = new OracleConnection(“Data Source=TESTDB.test;User id=id12345;Password=pass12345″);
  11. cmd.Connection.Open();
  12. OracleDataReader reader = cmd.ExecuteReader();
  13. dtblCalisan.Load(reader);
  14. reader.Close();
  15. return dtblCalisan;
  16. }

Bu fonksiyonu çalıştırdığınız zaman TBL_CALISAN tablosunu veri tabanından çekip DataTable a bastıktan sonra verileri DataTable olarak bize dönderecek.

Kolay Gelsin!

Sevebilirsin...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir