2020년 7월 18일 토요일

오라클함수란, PL/SQL 오라클 함수(Function), 아론 맟 실습예제

PL/SQL 오라클 함수(Function), 아론 맟 실습예제

http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=562

2. PL/SQL 프로그램

2-1. 함수(Function)

n 자신을 호출한 곳으로 반드시 하나의 값을 리턴해 줘야되는 PL/SQL Stored Program 이다.

n Stored Function or User Function or User-Defined Function 이라고 한다.

n 자신의 스키마 계정에 함수를 작성하려면 CREATE PROCEDURE 시스템 권한이 있어야하며

다른 사용자 계정에서 함수를 만들려면 CREATE ANY PROCEDURE 시스템 권한이 있어야

한다.

n 함수 Header에 리턴되는 데이터 타입을 기술해야 하고 Header의 끝에는 IS[AS]가

와야하고 Is[AS]와 Begin사이에 Begin~End에서 사용할 변수를 선언한다.

[형식]

CREATE [OR REPLACE] FUNCTION function_name [parameters]

RETURN 리턴되는 데이터타입

IS[/AS]

Declaration_section

BEGIN

Execution_section

Return return_variable;

EXCEPTION

exception section

Return return_variable;

END;

/

SQL> edit ojc2

CREATE OR REPLACE FUNCTION ojc2(p_empno IN NUMBER)

RETURN VARCHAR2

IS

v_ename emp.ename%TYPE;

BEGIN  

-- BEGIN~END 사이의 SELECT절은 반드시 한건만 SELECT 되야하며 INTO절이 반드시 필요

SELECT ename

INTO v_ename

FROM emp

WHERE empno = p_empno;

RETURN v_ename;

END ojc2;

/

SQL> @ojc2

함수가 생성되었습니다.

SQL> variable ename varchar2(50)

SQL> exec :ename := ojc2(7369)

PL/SQL 처리가 정상적으로 완료되었습니다.

SQL> print ename

ENAME

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

SMITH

SQL> select ojc2(7369) from dual;

OJC2(7369)

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

SMITH

SQL> drop table emp_temp;

SQL> create table emp_temp as select empno, sal, ename from emp where 1 = 2;

SQL> insert into emp_temp values (7788, 9999, ojc2(7788));

1 개의 행이 만들어졌습니다.

SQL> select * from emp_temp;

EMPNO SAL ENAME

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

7888 9999 SCOTT

댓글 없음:

댓글 쓰기

(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...