PLSQL, 동적SQL, Dynamic SQL, 커서OPEN FO에서 Dynamaic SQL사용하기, 참조커서, 오라클교육, SQL교육, 자바교육, SQL학원, 오라클학원, 자바학원
https://www.youtube.com/watch?v=upkNZLX6CV4&list=PLxU-iZCqT52CE6piTNJMXGGUvDvKw46_T&index=12

https://www.youtube.com/watch?v=8hc030THr8w&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=16


Native Dynamic SQL
OPEN FOR, FETCH, CLOSE
강의 : 이종철
동적SQL(Dynamic SQL)이 필요한 이유?
DDL(데이터베이스 정의 언어) 문을 실행해야 하는 프로그램을 작성할 때, 변수를 이용하여 SQL문장을 동적으로 만들어 낼때, 컴파일타임에 존재하지 않는 DB Object를 참조하는 경우(테이블의 이름을 동적으로 생성), PL/SQL블록에서 다른 프로시저등을 호출하는 경우에 사용합니다.
이번 강좌에서는 Dynamic SQL 문이 여러 행을 반환하는 SELECT 문을 나타내는 경우를 실습하는데 다음과 같이 Native Dynamic SQL로 처리할 수 있습니다.
OPEN FOR문을 사용하여 커서 변수를 Dynamic SQL문과 연결하는데, OPEN FOR 문의 USING 절에서 동적 SQL 문의 각 자리 표시자(:)에 대한 바인드 변수를 지정합니다.
이번 강좌에서는 Native Dynamic SQL의 형태로 커서를 사용하면서 동적 SQL문을 작성해 보겠습니다.
DECLARE -- 참조커서 타입 정의 TYPE EmpCurTyp IS REF CURSOR; v_emp_cur EmpCurTyp; v_emp_record emp%ROWTYPE; v_sql_text VARCHAR2(200); v_deptno emp.deptno%TYPE; BEGIN -- 자리표시자와 함께 Dynamic SQL 구문을 작성 합니다. v_sql_text := 'SELECT * FROM EMP WHERE DEPTNO = :1'; -- 커서를 오픈하고 USING구에서 :1 바인드 변수 값을 지정 합니다. OPEN v_emp_cur FOR v_sql_text USING 20; -- 커서에서 한건씩 레코드를 FETCH 합니다. LOOP FETCH v_emp_cur INTO v_emp_record; EXIT WHEN v_emp_cur%NOTFOUND; DBMS_OUTPUT.PUT_LINE('EMPNO : ' || v_emp_record.empno || ',' || 'ENAME : ' || v_emp_record.ename); END LOOP; -- Close cursor: CLOSE v_emp_cur; END; / |
#PLSQL, #동적SQL, #DynamicSQL, #커서, #SQL, #참조커서, #오라클교육, #SQL교육, #자바교육, #SQL학원, #오라클학원, #자바학원, PLSQL, 동적SQL, DynamicSQL, 커서, SQL, 참조커서, 오라클교육, SQL교육, 자바교육, SQL학원, 오라클학원, 자바학원