2010-11-19 23 views
1

Eklentiler & güncelleştirmeleri gibi işlemek için bir dizi otomatik olarak oluşturulan veri erişim sınıfları var.Parametreli bir sorgunun parçası olarak bir oracle işlevini nasıl çağırabilirim?

Bunlar benziyor: Ben bunu yapmak için herhangi bir yolu var mı

cmd.CommandText = "UPDATE myTable set f1 = pkg.getMyValue, f2 = :f2, f3 = :f3 where id = :id" 

gibi İstediğimi yapmak için sql yeniden yazmak, bu olmazdı şey olsaydı

cmd.CommandType = CommandType.Text 
cmd.CommandText = "UPDATE myTable set f1 = :f1, f2 = :f2, f3 = :f3 where id = :id" 

cmd.Parameters.AddWithValue(":f1", _f1) 
cmd.Parameters.AddWithValue(":f2", _f2) 
cmd.Parameters.AddWithValue(":f3", _f3) 
cmd.ExecuteNonQuery() 

güncelleme SQL'i veya parametrelerin ayarlanma şekli değiştirilmeden _f1 değeri "özel" değere ayarlanıyor? Sadece belirli durumlarda f1 değerini ayarlamam gerekecek - çoğu zaman, boş olacak.

Eğer kahin 11.

cevap

0

Hayır karşı .net 2.0 ve System.Data.OracleClient olamaz kullanma. Bir bağlama değişkeni bir değişmezdir, yürütülecek bir paketi belirtemezsiniz.

null olup olmadığını pkg.getMyValue ile f1 doldurur temel tabloyu bir tetikleyici düşünebilirsiniz

:

create or replace trigger myTrigger 
before insert or update on myTable for each row 
begin 
    if :new.f1 is null 
    then 
    :new.f1 := pkg.getMyValue; 
    end if; 
end; 
/
İlgili konular