레이블이 DynamicCursor인 게시물을 표시합니다. 모든 게시물 표시
레이블이 DynamicCursor인 게시물을 표시합니다. 모든 게시물 표시

2022년 1월 3일 월요일

PLSQL 동적커서 vs 정적커서, Dynamic Cursor실습, DDL실습, 오라클교육, SQL교육, ORACLE교육, SQL학원, 오라클학원, 자바학원, JAVA학원, ORACLE동영상

 PLSQL 동적커서 vs 정적커서, Dynamic Cursor실습, DDL실습, 오라클교육, SQL교육, ORACLE교육, SQL학원, 오라클학원, 자바학원, JAVA학원, ORACLE동영상


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


PLSQL 동적커서 vs 정적커서, Dynamic Cursor실습, DDL실습, 오라클교육, SQL교육, ORACLE교육, SQL학원, 오라

PLSQL 동적커서 vs 정적커서, Dynamic Cursor실습, DDL실습, 오라클교육, SQL교육, ORACLE교육, SQL학원, 오라클학원, 자바학원, JAVA학원오라클 PL/SQLDDL 실행Dynamic CursorStatic Cursor실습동적커서를 만들기 위해

ojc.asia

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


PLSQL, 동적SQL, Dynamic SQL, 커서OPEN FOR에서 Dynamaic SQL사용하기, 참조커서, 오라클교육, SQL교육, 자바

PLSQL, 동적SQL, Dynamic SQL, 커서OPEN FOR에서 Dynamaic SQL사용하기, 참조커서, 오라클교육, SQL교육, 자바교육, SQL학원, 오라클학원, 자바학원오라클 PL/SQLNative Dynamic SQLOPEN FOR, FETCH, CLOSE강의 : 이종철동적SQ

ojc.asia

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


PLSQL BULK COLLECT INTO 실습, SELECT, FETCH에서 BULK COLLECT INTO 사용하기, 오라클교육, SQL교육, JAVA교육, 오

PLSQL BULK COLLECT INTO 실습, SELECT, FETCH에서 BULK COLLECT INTO 사용하기, 오라클교육, SQL교육, JAVA교육, 오라클학원, SQL학원, 자바학원오라클 PL/SQLSELECT, FETCH에서BULK COLLECT INTO 사용하기실습[BULK COLLECT INTO]SE

ojc.asia

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


오라클 프로시저실습, INOUT파라미터, 반복문, LOOP ENDLOOP,FOR, WHILE,오라클교육, 오라클학원, SQL교육,

오라클 프로시저실습, INOUT파라미터, 반복문, LOOP ENDLOOP,FOR, WHILE,오라클교육, 오라클학원, SQL교육, SQL학원오라클 PL/SQL프로시저 작성반복문(LOOP~END LOOP, WHILE, FOR)INOUT 파라미터실습[실습]주어진 수

ojc.asia


오라클 PL/SQL



DDL 실행

Dynamic Cursor

Static Cursor


실습





동적커서를 만들기 위해서는 참조커서를 이용하여 쿼리 문자열 OPEN FOR 구문으로 커서를 생성 합니다.


동적커서를 만들기 위한 OPEN-FOR-USING 문은 커서 변수를 SQL쿼리와 연결하고, 쿼리를 실행하고, 결과 집합의 첫 번째 행 앞에 커서를 놓은 다음, %ROWCOUNT에 의해 유지되는 처리된 행 수를 0으로 만드는 과정을 거칩니다.


WHERE 절을 미리 알고 있는 쿼리를 작성할 때 OPEN-FOR-USING 문을 사용하며, 알 수 없는 수의 WHERE 절이 있는 동적 쿼리 작성이 필요한 경우에는 OPEN-FOR 문을 사용합니다. 이때 커서 변수의 TYPE은 REF CURSOR가 되어야 합니다.


아래 예제에서 커서는 런타임에 SQL문을 담은 변수값에 의해 동적으로 생성되므로 컴파일 시점에 존재하지 않는 테이블에 대해 참조도 가능합니다.


[실습 : DDL실행 및 동적커서 생성]

[정적커서 사용예]

DECLARE
       CURSOR c_emp IS SELECT ename, sal FROM emp WHERE deptno = 10;
       v_ename emp.ename%TYPE;
       v_sal   emp.sal%TYPE;
    BEGIN
       OPEN c_emp;
       LOOP
          FETCH c_emp INTO v_ename, v_sal;
         EXIT WHEN c_emp%NOTFOUND OR c_emp%NOTFOUND IS NULL;
         DBMS_OUTPUT.PUT_LINE(c_emp%ROWCOUNT || '. ' || v_ename || ',' || v_sal);
      END LOOP;
      CLOSE c_emp;
   END;
   /


[동적커서 사용예]

set serveroutput on;
drop table emp_test;
select * from emp_test;

CREATE OR REPLACE PROCEDURE DynamicCursor (p_job IN VARCHAR2) IS
  TYPE cur_type IS REF CURSOR;
  c_cursor cur_type;
  sql_text1  VARCHAR2(1000);
  sql_text2  VARCHAR2(1000);
  sql_text3  VARCHAR2(1000);
  p_text     VARCHAR2(100);
BEGIN
  sql_text1 := 'create table emp_test (empno number primary key, ename varchar2(20), job varchar2(50) ) ';
  execute immediate sql_text1;
   
  sql_text2 := 'insert into emp_test values( :1, :2, :3)';
  for i in 1..5 loop
    execute immediate sql_text2 using i, i || '길동', 'SALESMAN';
  end loop;
  
  commit;

  IF p_job != 'SALESMAN' THEN
    sql_text3 := 'SELECT :1 || '' Not SALESMAN''   AS text FROM dual';
  ELSE
    sql_text3 := 'SELECT ename FROM emp_test WHERE job = :1';
  END IF;
  
  OPEN c_cursor FOR sql_text3 USING p_job;
  LOOP
    FETCH c_cursor INTO p_text;
    EXIT WHEN c_cursor%NOTFOUND;
    dbms_output.put_line(p_text);
  END LOOP;
  CLOSE c_cursor;
END;
/

exec DynamicCursor('AAA');
exec DynamicCursor('SALESMAN');



#PLSQL동영상, #PLSQL, #동적커서, #정적커서, #DynamicCursor, #오라클교육, #SQL교육, #ORACLE교육, #SQL학원, #오라클학원, #자바학원, #JAVA학원, PLSQL동영상, PLSQL, 동적커서, 정적커서, DynamicCursor, 오라클교육, SQL교육, ORACLE교육, SQL학원, 오라클학원, 자바학원, JAVA학원


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