我对Oracle完全是绿色的,我正在寻找从Oracle DB调用和检索数据的最佳实践。
在C#中,我可以这样做......
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM MyTable WHERE id = 3";
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
dr.Read();
string lastName = dr.Get<string>("A_Field_1");
但是我想在Oracle中创建一个存储过程以返回数据表。 例如“Select * from MyTable”。
在Oracle中创建存储过程是一种更好的做法,可能是在我的代码库中使用函数还是在行中?
我更愿意创建一个存储过程,但我正在努力完成这个简单任务所需的语法。
答案 0 :(得分:5)
最佳做法是在C#中创建存储过程而不是使用动态SQL。在您的情况下,您可以创建一个这样的简单过程;
create procedure myproc (prc out sys_refcursor)
is
begin
open prc for SELECT * FROM MyTable WHERE id = 3
end;
然而,正如Klaudiusz指出的那样,也可以使用某种ORM。