▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
자료실
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

EXECUTE IMMEDIATE 사용 예제

DataBase 조회 수 12865 추천 수 0 2010.05.28 16:00:47

Example of EXECUTE IMMEDIATE usage


1. To run a DDL statement in PL/SQL.

begin
 execute immediate 'set role all';
end;


2. To pass values to a dynamic statement (USING clause).

declare
 l_depnam varchar2(20) := 'testing';
 l_loc    varchar2(10) := 'Dubai';
begin
 execute immediate 'insert into dept values (:1, :2, :3)'
   using 50, l_depnam, l_loc;
 commit;
end;

 

3. To retrieve values from a dynamic statement (INTO clause).

declare
 l_cnt    varchar2(20);
begin
 execute immediate 'select count(1) from emp'
   into l_cnt;
 dbms_output.put_line(l_cnt);
end;


4. To call a routine dynamically: The bind variables used for parameters of the routine have to be specified along with the parameter type. IN type is the default, others have to be specified explicitly.

declare
 l_routin   varchar2(100) := 'gen2161.get_rowcnt';
 l_tblnam   varchar2(20) := 'emp';
 l_cnt      number;
 l_status   varchar2(200);
begin
 execute immediate 'begin ' || l_routin || '(:2, :3, :4); end;'
   using in l_tblnam, out l_cnt, in out l_status;

 if l_status != 'OK' then
    dbms_output.put_line('error');
 end if;
end;


5. To return value into a PL/SQL record type: The same option can be used for %rowtype variables also.

declare
 type empdtlrec is record (empno  number(4),
                           ename  varchar2(20),
                           deptno  number(2));
 empdtl empdtlrec;
begin
 execute immediate 'select empno, ename, deptno ' ||
                   'from emp where empno = 7934'
   into empdtl;
end;

 

6. To pass and retrieve values: The INTO clause should precede the USING clause.

declare
 l_dept    pls_integer := 20;
 l_nam     varchar2(20);
 l_loc     varchar2(20);
begin
 execute immediate 'select dname, loc from dept where deptno = :1'
   into l_nam, l_loc
   using l_dept ;
end;

 

7. Multi-row query option. Use the insert statement to populate a temp table for this option. Use the temporary table to carry out further processing. Alternatively, you may use REF cursors to by-pass this drawback.

declare
 l_sal   pls_integer := 2000;
begin
 execute immediate 'insert into temp(empno, ename) ' ||
                   '          select empno, ename from emp ' ||
                   '          where  sal > :1'
   using l_sal;
 commit;
end;

 

 

http://www.databasejournal.com/features/oracle/article.php/2109681/EXECUTE-IMMEDIATE-option-for-Dynamic-SQL-and-PLSQL.htm

문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 DataBase 질문글은 자유게시판에 작성해 주세요. 뭉충닷컴 2005-09-24 113094
71 DataBase comma 구분자 데이터를 row 형태로 가져오기 (SUBSTRING_INDEX 이용) 뭉충닷컴 2015-07-06 3267
70 DataBase erwin pre & post script 로 index 생성 script 만들기 뭉충닷컴 2012-10-25 6017
69 DataBase erwin pre & post script 작성시 변수 이용해보기 뭉충닷컴 2012-09-12 6094
68 DataBase Input file: xxxx.ER1 with file version: -1 is not readable by Computer Associates ERwin 오류 해결 방법 뭉충닷컴 2012-05-15 6416
67 DataBase sqlplus에서 SP2-0734 .. 에러가 발생할 경우 뭉충닷컴 2012-04-05 9278
66 DataBase connect by를 이용한 몇가지 쿼리 뭉충닷컴 2011-11-29 5505
65 DataBase 오라클 with를 이용한 인라인뷰 뭉충닷컴 2011-05-26 9696
64 DataBase 컬럼에 한글 포함여부 검사 뭉충닷컴 2010-09-29 13002
63 DataBase 오라클 숨겨진 함수들 뭉충닷컴 2010-07-29 13347
62 DataBase 오라클 암시적 커서 사용 예제 뭉충닷컴 2010-06-11 11584
61 DataBase 오라클 Function 에서 DML 문 사용하기 뭉충닷컴 2010-06-10 14281
» DataBase EXECUTE IMMEDIATE 사용 예제 뭉충닷컴 2010-05-28 12865
59 DataBase dblink를 통한 insert시 속도향상 뭉충닷컴 2010-04-08 18953
58 DataBase 오라클 DB의 프로시저, 함수, 시노님 등등 목록 보기 뭉충닷컴 2010-03-11 14669
57 DataBase 오라클에서 특정문자개수 구하기 [1] 뭉충닷컴 2009-12-30 19683
56 DataBase log4j sql formatter 뭉충닷컴 2009-07-16 11886
55 DataBase 트리구조의 데이터 검색하기 뭉충닷컴 2009-06-30 9812
54 DataBase 오라클 사용자정의 함수 인자들의 default value 값 가져오디 뭉충닷컴 2009-05-15 14032
53 DataBase 10g 공백제거 정규표현식입니다. 뭉충닷컴 2009-05-15 15314
52 DataBase 오라클 UPDATE JOIN 뭉충닷컴 2009-05-07 19017