레이블이 오라클함수인 게시물을 표시합니다. 모든 게시물 표시
레이블이 오라클함수인 게시물을 표시합니다. 모든 게시물 표시

2022년 3월 2일 수요일

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

 (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원


https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-iZCqT52CtVOhmaR6Nd-65M163g9u-&index=5 

https://www.youtube.com/watch?v=3EVBaefJzAs&list=PLxU-iZCqT52CtVOhmaR6Nd-65M163g9u-&index=12 


http://ojc.asia/bbs/board.php?bo_table=LecCsharp&wr_id=433 


(동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습

(동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습ADO.NET 실습ODP.NET/ODAC 설치오라클 함수 호출 실습오라클19C, VS2022C#, ADO.NET을 이용하여 오라클 서버의 함수를 호출하는 실습을 합니다.실

ojc.asia

ADO.NET 실습

ODP.NET/ODAC 설치

오라클 함수 호출 실습


오라클19C, VS2022




C#,  ADO.NET을 이용하여 오라클 서버의 함수를 호출하는 실습을 합니다.


실습환경 : 오라클 19C, VS 2022

                 ODP.NET으로 오라클 DB의 함수를 호출하여 데이터 추출



[오라클 실습 환경 구성]


1. 오라클 전용 드라이버를 사용하기 위해 ODP.NET을 사용하려면 https://www.oracle.com/database/technologies/dotnet-odacdeploy-downloads.html 에 접속하여 ODAC 관련 ZIP 파일을 다운받아 setup.exe를 실행하여 오라클 유니버설 인스톨러를 통해 설치해야 한다. ODAC에는 오라클 접근을 위한 여러 드라이버들이 존재한다.



2. OLEDB를 사용방식으로 오라클에 접근하기 위해서는 System.Data 네임스페이스를 사용하면 되고 별다른 설치는 필요 없다.


3. VS2022에서 우리가 만드는 프로젝트를 64비트로 작동 시키기 위해 프로젝트에서 마우스 우측버튼 속성창의 빌드에서 플랫폼대상을 *64로 선택해야 한다.






[오라클 서버의 함수]

CREATE OR REPLACE FUNCTION getDept(deptno IN NUMBER)

RETURN SYS_REFCURSOR IS 

    refcur_ret SYS_REFCURSOR;

BEGIN

    OPEN refcur_ret FOR 'SELECT * FROM EMP WHERE DEPTNO = :1' using deptno;

    RETURN refcur_ret;

END getDept;


[생성함수 테스트]

variable a refcursor;

exec :a := getDept(10);

print a;


     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO

---------- ---------- --------- ---------- -------- ---------- ---------- ----------


      7782 CLARK      MANAGER         7839 81/06/09       2450                    10


      7934 MILLER     CLERK           7782 82/01/23       1300                    10




[C# 콘솔 프로젝트 생성]


using System;

using System.Data;

using Oracle.DataAccess.Client;

using Oracle.DataAccess.Types;


namespace OracleTest

{

    class OracleRefCursorSample

    {

        static void Main()

        {

            //오라클 연결 문자열

            string constr = "User Id=scott;Password=tiger;Data Source=orcl";


            //오라클 Connection 생성 및 OPEN

            OracleConnection con = new OracleConnection(constr);

            con.Open();


            // 서버의 함수를 호출하기 위한 Command객체 생성(SQL실행)

            OracleCommand cmd = new OracleCommand("getDept", con);

            cmd.CommandType = CommandType.StoredProcedure;


            // Bind the parameters

            // output은 서버에서 리턴되는 참조커서를 받기위한 파라미터

            // REURN REF CURSOR bound to SELECT * FROM EMP WHERE DEPTNO = :1

            OracleParameter output = cmd.Parameters.Add("refcur_ret", OracleDbType.RefCursor);

            output.Direction = ParameterDirection.ReturnValue;


            //부서코드를 던져주기 위한 Input Parameter

            OracleParameter input = cmd.Parameters.Add("deptno", OracleDbType.Int16);

            input.Direction = ParameterDirection.Input;

            input.Value = 10;


            // 오라클 서버의 getDept함수를 호출

            cmd.ExecuteNonQuery();


            // 실행하면 참조커서가 리턴해주는 사원목록이 output 파라미터에 들어가고

            // 이를 OracleDataReader 타입으로 변환한다.

            // ADO.NET에서SELECT 목록은 Reader로 받음, 자바는 ResultSet

            OracleDataReader reader1 = ((OracleRefCursor)output.Value).GetDataReader();


            Console.Write(reader1.GetName(0) + "\t"); Console.WriteLine(reader1.GetName(1));

            Console.WriteLine("---------------------");

            while (reader1.Read())

            {

                Console.Write(reader1[0].ToString() + "\t");   Console.WriteLine(reader1[1].ToString());

            }


            reader1.Close();

            reader1.Dispose();

            output.Dispose();

            input.Dispose();

            cmd.Dispose();

            con.Close();

            con.Dispose();

        }

    }

}


[결과]


EMPNO   ENAME

---------------------

7782    CLARK

7934    MILLER


 

#시샵동영상, #ADO.NET, #닷넷오라클, #닷넷동영상, #시샵교육, #시샵학원, #ODP.NET, #ODAC, #오라클함수, #닷넷학원, #닷넷교육, 시샵동영상, ADO.NET, 닷넷오라클, 닷넷동영상, 시샵교육, 시샵학원, ODP.NET, ODAC, 오라클함수, 닷넷학원, 닷넷교육, 

2022년 1월 5일 수요일

ORACLE동영상, PLSQL 함수로 팩토리얼 구하기, Factorial Oracle Function, 함수실행방법, 바인드변수, 호스트변수, 오라클교육, SQL교육, 오라클학원, SQL학원, 자바교육, 자바학원

 ORACLE동영상, PLSQL 함수로 팩토리얼 구하기, Factorial Oracle Function, 함수실행방법, 바인드변수, 호스트변수, 오라클교육, SQL교육, 오라클학원, SQL학원, 자바교육, 자바학원


https://youtu.be/P0vET1PjxFM




https://www.youtube.com/watch?v=9cS-bMTbkLo&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=6 

함수 실습, Factorial 구하기

PL/SQL내부 및 외부에서 실행


강의 : 이종철





실습 : PL/SQL Factorial 구하는 함수 작성

          PL/SQL 내부 및 외부에서 실행



create or replace function fact(p_num in number)
return number
is
    f number := 0;
begin
    if p_num = 0 then
       f := 1;
    else
        f := p_num * fact(p_num - 1);
    end if;
    
    return f;
end;
/

set serveroutput on
declare
    num number := 5;
    f number;
begin
    f := fact(num);
    dbms_output.put_line(' Factorial ' || num || ' = ' || f);
end;


Factorial 5 = 120
PL/SQL 프로시저가 성공적으로 완료되었습니다.


accept num prompt 'Enter a number : ';   --대체변수
var f number;   
exec :f := fact(&num);
print f;

         F
----------
       120

https://www.youtube.com/watch?v=RE79vqW_s6o&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=31

https://www.youtube.com/watch?v=x6gW4inKtZg&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=32 

https://www.youtube.com/watch?v=kF7_EEJKlQQ&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=29 

https://www.youtube.com/watch?v=-2CzUYAmRvk&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=5 


https://www.youtube.com/watch?v=7iTlIcwOX4A&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=7 

#오라클, #PLSQL, #팩토리얼, #Factorial, #오라클함수, #함수실행, #바인드변수, #호스트변수, #오라클교육, #SQL교육, #오라클학원, #SQL학원, #자바교육, #자바학원, 오라클, PLSQL, 팩토리얼, Factorial, 오라클함수, 함수실행, 바인드변수, 호스트변수, 오라클교육, SQL교육, 오라클학원, SQL학원, 자바교육, 자바학원

2021년 12월 31일 금요일

[오라클동영상]오라클 패키지, 프로시저, 함수 실습, Oracle Package, Procedure, Function, refcursor, 참조커서

 [오라클동영상]오라클 패키지, 프로시저, 함수 실습, Oracle Package, Procedure, Function, refcursor, 참조커서






오라클 PL/SQL




패키지, 프로시저, 함수 실습


강의 : 이종철







패키지 명세가 아래와 같다. 패키지 바디를 구현하고 각각 호출하여 테스트 하세요.

(EXCEPTION 절을 이용하여 예외처리)

create or replace package emp_pkg2 as
-- 사번을 받아 사원명을 출력
procedure print_ename( p_empno number );


-- 사번을 받아 관리자 이름을 출력(mgr 칼럼이 관리자ID 임)
procedure print_mname( p_empno number );


-- 부서코드를 입력받아 해당 부서원들의 사번, 이름, 급여추출
function get_emps(p_deptno number) return sys_refcursor;


end emp_pkg2;
/



create or replace package body emp_pkg2 as
procedure print_ename(p_empno number)
is
v_ename emp.ename%type;
begin
select ename into v_ename
from emp
where empno = p_empno;
dbms_output.put_line(v_ename);
exception
when no_data_found then
dbms_output.put_line('no emp...');
when others then
dbms_output.put_line(SQLCODE || SQLERRM);
end;


procedure print_mname(p_empno number)
is
v_mname emp.ename%type;
begin
select e2.ename into v_mname
from emp e1, emp e2
where e1.mgr = e2.empno
and e1.empno = p_empno;
dbms_output.put_line(v_mname);
exception
when no_data_found then
dbms_output.put_line('no emp...');
when others then
dbms_output.put_line(SQLCODE || SQLERRM);
end;


function get_emps(p_deptno number) return sys_refcursor
is
empcursor sys_refcursor;
sqlstr varchar2(2000);
begin
sqlstr := 'select empno, ename, sal from emp where deptno = :1';
open empcursor for sqlstr using p_deptno;
return empcursor;
end;


end emp_pkg2;
/



[패키지 호출 테스트]

  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제



#오라클, #자바, #패키지, #프로시저, #오라클함수, #OraclePackage, #OracleProcedure, #ORacleFunction, #오라클교육, #오라클학원, #SQL교육, #SQL학원, #자바교육, #자바학원, 오라클, 자바, 패키지, 프로시저, 오라클함수, OraclePackage, OracleProcedure, ORacleFunction, 오라클교육, 오라클학원, SQL교육, SQL학원, 자바교육, 자바학원




(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...