전체 글 (26) 썸네일형 리스트형 [PL/SQL] CURSOR CURSOR 커서는 Oracle 서버에서 할당한 메모리 영역에 대한 포인터이다. 커서의 종류에는 묵시적 커서, 명시적 커서가 있다. 묵시적 커서: 오라클 내부에서 자동으로 생성되어 SQL문장이 실행될때마다 자동으로 만들어져 실행되는 커서이다. 명시적 커서: 사용자가 직접 정의해서 사용하는 커서이다. CURSOR 커서이름 (변수 ..) IS SELECT .... CURSOR 후에 커서이름을 설정하고 PL/SQL문에 변수를 지정한다. 그 이후 기본적인 SELECT문을 사용한다. 또한 시작할때는 OPEN 커서명 으로 실행하며 사용한 후에는 CLOSE 커서명 으로 커서를 닫는다. 예제 : CURSOR를 사용하여 EMP테이블과 DEPT 테이블을 조인시키기 -- 명시적 CURSOR로 했다. CREATE OR REP.. [PL/SQL] FOR FOR PL/SQL 에서도 JAVA와 같이 FOR,WHILE 문 같은 반복문을 사용할 수 있다. FOR [지정이름] IN 시작값..END값 LOOP 반복할 내용 ... END LOOP; 지정이름은 우리가 함수의 이름을 정하듯이 사용할 수 있으며 시작값과 종료 값을 숫자나 binary_integer형으로 선언한 변수를 사용할 수 있다. 만약 시작값이 i BINARY_INTEGER:=0; 일 경우 0부터 시작하게 되는것이다. FOR문도 BEGIN 이후로 사용해주면 된다. 예제테이블 SELECT * FROM EMP WHERE DEPTNO=10; CREATE OR REPLACE PROCEDURE TABLEEX(V_DEPTNO IN EMP.DEPTNO%TYPE) IS TYPE EMPNO_TABLE IS TABLE.. [PL/SQL] RECORD RECORD 레코드란 PL/SQL에서 제공하는 테이블 형태의 데이터 타입이다. 레코드와 기존의 프로시저의 차이점이라면 기존의 프로시저문 같은 경우 하나의 변수만 가질 수 있었지만, 레코드 같은 경우 여러 개의 값을 가질 수 있다. 레코드를 정의하는 방식 TYPE [레코드명] IS RECORD( 변수1 변수2 변수3 ... ); [레코드변수명] [레코드명]; CREATE OR REPLACE PROCEDURE RECORD_STUD(P_STUDNO IN STUDENT.STUDNO%TYPE) IS TYPE STYPE IS RECORD( V_STUDNO NUMBER(10),V_NAME VARCHAR2(10),V_HEIGHT NUMBER(5)); STREC STYPE; BEGIN SELECT STUDNO,NAME,.. [PL/SQL]IF, CASE IF IF문은 BEGIN~END 사이에 자바에 쓰이는 IF 문 처럼 사용 할 수 있다. 차이점은 자바에서 조건이 맞으면 실행되는 문장에 THEN을 삽입한다. IF P_ORIGIN='1' OR P_ORIGIN='2' THEN TEMP:=CONCAT(P_ORIGIN,'신입'||P_VALUE); -- 만약 P_ORIGIN 이 1 또는 2 라면 TEMP는 CONCAT(P_ORIGIN,'신입'||P_VALUE)이다. 여기서 := 는 자바에서 = 를 뜻하고 = 는 자바에서 ==을 뜻한다. 나머지 ELSE 문 ELSIF문은 같으며 IF문이 끝날때 END IF로 문장을 닫으면 된다. CREATE OR REPLACE FUNCTION CTNNFUN(P_ORIGIN IN VARCHAR2,P_VALUE IN VARCHAR2).. [PL/SQL] DML(INSERT, UPDATE ,DELETE ) 연습 연습 테이블 INSERT CREATE OR REPLACE PROCEDURE ADDPLEMP( P_EMPNO IN PLEMP.EMPNO%TYPE, P_ENAME IN PLEMP.ENAME%TYPE, P_JOB IN PLEMP.JOB%TYPE) IS BEGIN INSERT INTO PLEMP(EMPNO,ENAME,JOB) VALUES(P_EMPNO,P_ENAME,P_JOB); COMMIT; DBMS_OUTPUT.PUT_LINE(P_JOB||'부서 INSERT SUCCESS'); END ADDPLEMP; CREATE OR REPLACE PROCEDURE [프로시저 이름] : 프로시저 생성 ( P_EMPNO IN PLEMP.EMPNO%TYPE, ....) : 프로시저내에서 사용할 변수를 선언한다 여기에서는PLE.. [PL/SQL] 개념, 기본문법 PL/SQL 의 개념 PL/SQL이란 Procedural Language/SQL의 약자이며 ORACLE에서 제공하는 데이터베이스 언어이다. 오라클에서는 기본적인 SQL 문법을 제공하기도 하는데 따로 PL/SQL이란 것이 있냐하면 PL/SQL은 프로그래밍 언어처럼 변수를 만들고 반복문, 조건문을 사용할 수 있다는 장점이 있다. 기본적인 문법 DECLARE [선언] BEGIN [실행] EXCEPTION[예외처리] END[종료] SET SERVEROUTPUT ON [ PL/SQL을 실행하려면 SERVEROUTPUT ON 해줘야 한다] 만약 오류가 났을 경우 SHOW ERRORS를 통해 오류로그를 확인 할 수 있다. DBMS_OUTPUT.PUT_LINE("출력문") 을 사용할 경우 자바의 System.out.p.. [ORACLE]JOIN ( INNER, OUTER) + ANSI JOIN JOIN은 두 개 이상의 테이블을 연결하여 하나의 테이블처럼 출력하는 방식이다. 이러한 방식은 조인 말고도 집합 연산자도 있지만 이 둘의 차이점이라면 조인은 결과를 가로로 출력하고, 집합 연산자는 세로로 출력하면 쉽게 이해할 수 있다. 조인의 종류로는 외부조인(OUTER), 내부 조인(INNER), LEFT, OUTER 그리고 다른 SQL에서도 사용 가능한 ANSI 조인이 있다. 예제 테이블 [SSANG] , [SSANG_DEPT] [SSANG] [SSANG_DEPT] 내부조인(INNER) 내부조인은 벤 다이어그램으로 설명하자면 교집합 과 같은 관계이다. 예제 테이블로 설명하자면 둘의 교집함은 EMPNO 이고 EMPNO가 없는 황의조는 출력이되지 않는다. 외부 조인(OUTER) 외부 조인은 기존.. [ORACLE]VIEW , 계층구조 VIEW View 는 간단히 말하자면 SELECT 문을 저장해서 볼 수 있는 방식이다. 사용자에게 보고 싶은 자료를 보여주고 싶을때, 아니면 SELECT 한 문을 View 방식으로 저장하여 View 에서 다시 데이터를 핸들링할때 사용할 수 있다. 하지만 물리적으로 존재하지 않기 때문에, 테이블을 정의하는 ALTER 문은 사용할 수 없으며 삭제, 삽입,갱신에 대한 제약이 따른다. 뷰를 생성하려면 CREATE OR REPLACE VIEW 뷰 이름 으로 정의해주면 된다. CREATE OR REPLACE VIEW 뷰 이름 AS SELECT ~ 예제테이블 만약 여기서 ENAME이 법무부만 따로 뽑아서 VIEW 를 생성하려고 하면 WHERE절에 조건을 추가해주면 된다. CREATE OR REPLACE VIEW LA.. 이전 1 2 3 4 다음