본문 바로가기

pl/sql

(ORACLE) PROCEDURE 에서 원하는 데이터를 찍어보자! CREATE OR REPLACE PROCEDURE BookInsertOrUpdate( myBookID NUMBER, myBookName VARCHAR2, myPublisher in VARCHAR2, myPrice in NUMBER ) AS mycount NUMBER; BEGIN DBMS_OUTPUT.DISABLE; DBMS_OUTPUT.ENABLE; SELECT count(*) into mycount FROM Book WHERE bookname LIKE myBookName; DBMS_OUTPUT.PUT_LINE(mycount); IF mycount!=0 THEN DBMS_OUTPUT.PUT_LINE('if문 들어옴!'); UPDATE Book SET price = myPrice WHERE bookname..
(SQL) 서브프로그램 및 프로시저에 대해 알아보자! ▣ PL/SQL 서브프로그램 : 데이터베이스의 저장된 PL/SQL(프로시저, 함수) ▷ 서브프로그램은 내장된 함수와 프로시저가 있다. ◈ 익명블럭의 특징 ▷ 이름이 없는 PL/SQL블록(문) ▷ 사용할 때마다 컴파일이 필요. ▷ 데이터베이스에 저장되어 있지 않다. ▷ 다른 응용프로그램에서 사용할 수 없다. ▷ 값을 반환할 수 없다. ▷ 매개변수(파라미터)를 사용할 수 없다. ◈ 서브프로그램의 특징 ▷ 이름이 있는 PL/SQL블록(문) ▷ 최초 실행될 때 한번만 컴파일 한다. ▷ 데이터베이스에 저장되어 있다. ▷ 다른 응용프로그램에서 사용할 수 있다. ▷ 함수일 경우 값을 반환할 수 있다. ▷ 매개변수(파라미터)를 사용할 수 있다. ▣ 프로시저란?? ▷ 특정 처리를 위한 서브 프로그램의 한 유형으로, 단독..
(SQL) 커서(Cursor)에 대해 알아보자 ▣ 커서(Cursor)란?? ▷ 쿼리문에 의해서 반환되는 결과값들을 저장하는 메모리공간 * Fetch : 커서에서 원하는 결과값을 추출하는 것 ▣ 커서의 종류 ▷ 명시적(Explicit) 커서 : 사용자가 선언해서 생성 후 사용하는 SQL 커서, 주로 여러개의 행을 처리하고자 할 경우 사용. ▷ 묵시적(Implicit) 커서 : 오라클에서 자동으로 선언해주는 SQL 커서. 사용자는 생성 유무를 알 수 없다. ▣ 커서의 속성 ※ 커서를 open하고 나서 fetch가 발생하면 true 값을 반환 ▷ %FOUND - 할당할 레코드가 있는 경우 true값을 반환. ▷ %isOpen - 커서가 오픈상태일 경우 true값을 반환. ▷ %NotFound - 할당할 레코드가 없는 경우 true값을 반환. ▷ %RowC..
(SQL) 바인드변수란 무엇일까? ▣ 바인드 변수(비 PL/SQL 변수) ▷ PL/SQL 외부에서도 사용할 수 있는 변수. ▷ 호스트 환경에서 생성되어 데이터를 저장하기 때문에 호스트 변수라고 한다. ▷ 키워드 VARIABLE을 이용하며, SQL문이나 PL/SQL블록에서도 사용 가능하다. ▷ PL/SQL블록이 실행된 후에도 액세스가 가능하다. ▷ print명령을 이용하여 출력이 가능하다. ▷ :(콜론) 을 붙여 사용한다. 사용예제)123456789begin select SAL*12+nvl(comm*12,0) into :vsal from EMP where EMPNO = 7369; end; / print VSAL;cs1) 선언없이 사용2) begin select SAL*12+nvl(comm*12,0) int :vsal --vsal에 값을 넣..
(SQL) 복합변수가 무엇일까? ▣ 복합변수란? ▷ 여러가지 다른 유형의 데이터들을 저장하는 변수 ▷ Record TYPE 과 Table TYPE으로 나뉨 ▣ Record TYPE 변수란?? ▷ 데이터 타입이 다른 여러 데이터를 저장할 경우 사용 ▷ 지정방법 1. type 타입명 is record() 2. 식별자 type 타입명; 사용 예시)1234567891011121314151617181920declaretype emp_rec is record(empNo EMPTEST.EMPNO%type, empSal EMP.SAL%type, empname emp.ename%type, empJob EMPtest.DEPTNO%type); rec1 emp_rec; --emp_rec에 대한 식별자가 rec1 begin select EMPNO, SAL, ..
[SQL] PL/SQL이란 무엇일까? ▣ PL/SQL(Procedure Language/SQL)이란 무엇을까? ▷ 오라클에서 제공하는 프로그래밍 언어이다. ▷ 일반 프로그래밍 언어적인 요소를 다 갖고 있으며, 데이터베이스 업무를 처리하기 위한 최적화된 언어이다. ▶기본 구조◀ ▷ 선언부(Declare) : 모든 변수나 상수를 선언하는 부분 ▷ 실행부(Executable) : begin~end / 제어문(if), 반복문, 함수정의 등의 로직을 기술하는 부분 ▷ 예외처리부(Exception) : 실행도중 에러 발생 시 해결하기 위한 명령들을 기술하는 부분 Declare, begin, exception 키워드들은 ;(세미콜론)을 붙이지 않고, 나머지 문장들은 ;(세미콜론)으로 처리한다. ▷ 익명블록(Anonymous PL/SQL Block) : ..