FUNCTION "GETUSERNAME" ( "PARAM1" IN NUMBER) RETURN varchar2 IS RETURN_VAL varchar2(150); BEGIN select FIRST_NAME ||' ' || LAST_NAME into RETURN_VAL from employees where employee_id = PARAM1; RETURN RETURN_VAL; END; FUNCTION "GETSALARY" ( "PARAM1" IN NUMBER) RETURN number IS RETURN_VAL NUMBER; BEGIN select SALARY into RETURN_VAL from employees where employee_id = PARAM1; RETURN RETURN_VAL; END;Yukarıda string değer döndüren "GETUSERNAME" ve decimal değer döndüren "GETSALARY" fonksiyonlarını oluşturduk. Aşağıda gibi bu fonksiyonları .NET projemiz içinde kullanabiliriz:
var db = DatabaseFactory.GetDbObject(); var gen = QueryGeneratorFactory.GetDbObject(); gen.ProcedureName = "GETSALARY"; gen.AddDataParameter("RETURN_VAL", DbType.Decimal, null, 150, System.Data.ParameterDirection.ReturnValue); gen.AddDataParameter("PARAM1", 100); db.ExecuteQuery(gen.GetProcedure()); var return_val = gen.GetParameterValue("RETURN_VAL"); string gen2 = QueryGeneratorFactory.GetDbObject(); gen2.ProcedureName = "GETUSERNAME"; gen2.AddDataParameter("RETURN_VAL", DbType.String, null, 150, System.Data.ParameterDirection.ReturnValue); gen2.AddDataParameter("PARAM1", 100); db.ExecuteQuery(gen2.GetProcedure()); decimal return_val2 = gen2.GetParameterValue("RETURN_VAL");
Yukarıda görüldüğü üzere QueryGenerator ile standart bir kod arayüzü ile fonksiyon ve prosedür erişimleri yapılabilmektedir.
"Bu yazıda "Oracle Managed Provider", Oracle 11g Express Edition ve HR şeması test verileri kullanılmıştır."
"https://github.com/vyigity/ProjectBase"
No comments:
Post a Comment