2014년 5월 5일 월요일

[C#,ADO.NET]ORACLE ODP.Net을 이용한 Stored Function(저장함수) 호출예제 , 오라클 프로시저, ADO.NET

[C#,ADO.NET]ORACLE ODP.Net을 이용한 Stored Function(저장함수) 호출예제 , 오라클 프로시저, ADO.NET 
 
using System;
using System.Data;
using Oracle.DataAccess;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

class Test
{
static void Main()
{
//get_dalary
함수는 Oracle에 정의 되어 있는 Stored Function 입니다.
//Empno
와 같은 사원번호를 입력 인자로 받아 그 사원의 급여를 돌려 줍니다
.
string str = "data source=onj;user id=scott; password=tiger";

OracleConnection Conn = new OracleConnection(str);
OracleCommand command = new OracleCommand("get_salary", Conn);
command.CommandType = CommandType.StoredProcedure;

OracleParameter output = new OracleParameter("sal", OracleDbType.Int64);
output.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(output);

OracleParameter input = new OracleParameter("p_id", OracleDbType.Int32);
input.Direction = ParameterDirection.Input;
input.Value = 7900;
command.Parameters.Add(input);

try
{
Conn.Open();
command.ExecuteNonQuery();
Conn.Close();

Console.WriteLine("{0}", output.Value);
Console.ReadLine();

}
catch(OracleException e)
{
Console.WriteLine(e.Number);
Console.WriteLine(e.Message);
Console.WriteLine();
}
}
}

----------------------------------------
* Oracle Server에 작성된 Stored Function
--------------------------------------------
create or replace function get_salary
(p_id in number)
return number

is
v_sal number;
begin

select sal
into v_sal
from emp
where empno = p_id;
return v_sal;
end;
/


*/

댓글 없음:

댓글 쓰기