동적 SQL 이란 무엇입니까?

동적 SQL 은 런타임에 문을 생성하고 실행하기위한 프로그래밍 방법론입니다. 주로 요구 사항에 따라 런타임에 sql 문이 생성되고 실행될 범용 및 유연한 프로그램을 작성하는 데 사용됩니다.,

이 튜토리얼에서 당신 배우-

  • 방법을 쓰는 dynamic SQL
  • NDS(Native Dynamic SQL) -즉시 실행
  • DBMS_SQL 에 대한 Dynamic SQL

방법을 쓰는 dynamic SQL

PL/SQL 제공하는 두 가지 방법을 쓰는 dynamic SQL

  1. NDS–Native Dynamic SQL
  2. DBMS_SQL

NDS(Native Dynamic SQL) 실행하여 즉시

네이티브 Dynamic SQL 은 쉬운 방법을 쓰는 dynamic SQL. 그것은’즉시 실행’명령을 사용하여 런타임에 SQL 을 만들고 실행합니다., 그러나이 방법을 사용하려면 런타임에 사용할 데이터 유형과 변수 수를 이전에 알아야합니다. 또한 DBMS_SQL 과 비교할 때 더 나은 성능과 적은 복잡성을 제공합니다.

Syntax

EXECUTE IMMEDIATE(<SQL>)
  • 위에 구문을 실행 쇼 즉각적인 명령입니다.
  • 절 INTO 는 선택 사항이며 동적 SQL 에 값을 가져 오는 select 문이 포함 된 경우에만 사용됩니다. 변수 유형은 select 문의 변수 유형과 일치해야 합니다.,
  • 절 사용은 선택 사항이며 동적 SQL 에 바인드 변수가 포함 된 경우에만 사용됩니다.

예제 1:이 예에서는 nds 문을 사용하여 emp_no’1001’에 대한 emp 테이블에서 데이터를 가져올 것입니다.

출력

Employee Name : XXX Employee Number: 1001 Salary: 15000 Manager ED: 1000

코드 설명:

DBMS_SQL 에 대한 Dynamic SQL

PL/SQL 제공 DBMS_SQL 패키지와 함께 작업할 수 있습니다 dynamic SQL. 동적 SQL 을 생성하고 실행하는 프로세스에는 다음 프로세스가 포함됩니다.,

  • 열기 커서:동적 SQL 은 커서와 같은 방식으로 실행됩니다. 따라서 SQL 문을 실행하기 위해서는 커서를 열어야합니다.
  • 구문 분석 SQL:다음 단계는 동적 SQL 을 구문 분석하는 것입니다. 이 프로세스는 구문을 확인하고 쿼리를 실행할 준비가 된 상태로 유지합니다.
  • 바인드 변수 값:다음 단계는 바인드 변수의 값을 할당하는 것입니다(있는 경우).
  • 열 정의:다음 단계는 select 문에서 상대 위치를 사용하여 열을 정의하는 것입니다.
  • 실행:다음 단계는 구문 분석 된 쿼리를 실행하는 것입니다.,
  • 값 가져 오기:다음 단계는 실행 된 값을 가져 오는 것입니다.
  • 커서 닫기:결과를 가져 오면 커서를 닫아야합니다.

예제 1:이 예에서는 DBMS_SQL 문을 사용하여 emp_no’1001’에 대한 emp 테이블에서 데이터를 가져올 것입니다.

출력

Employee Name:XXX Employee Number:1001 Salary:15000 Manager ID:1000

코드 설명:

  • 코드 라인 1-9:변수 선언입니다.,
  • 코드 줄 10:Sql 문을 프레임.
  • 코드 줄 11:dbms_sql 을 사용하여 커서를 엽니 다.OPEN_CURSOR. 열린 커서 id 를 반환합니다.
  • 코드 줄 12:커서를 연 후 SQL 이 구문 분석됩니다.
  • 코드 라인 13:바인드 변수’1001’이’:empno’대신 커서 id 에 할당됩니다.
  • 코드 줄 14-17:sql 문에서 상대적인 위치를 기반으로 열 이름을 정의합니다. 이 경우 상대 위치는(1)emp_name,(2)emp_no(3)급여(4)관리자입니다. 따라서이 위치를 기반으로 우리는 대상 변수를 정의하고 있습니다.,
  • 코드 라인 18:dbms_sql 을 사용하여 쿼리를 실행합니다.실행하십시오. 처리 된 레코드 수를 반환합니다.
  • 코드 줄 19-33:루프를 사용하여 레코드를 가져 와서 동일하게 표시합니다.
  • 코드 라인 20:DBMS_SQL.FETCH_ROWS 는 처리 된 행에서 하나의 레코드를 가져옵니다. 모든 행을 가져 오기 위해 반복적으로 호출 할 수 있습니다. 행을 가져올 수 없으면 0 을 반환하여 루프를 종료합니다.

요약

이 섹션에서는 동적 SQL 과 동적 SQL 을 실행하는 방법에 대해 설명했습니다., 우리는 또한 두 가지 방법으로 동적 SQL 을 실행하는 다른 단계를 보았습니다. 우리는 또한 본 예제에서는 동일한 시나리오를 처리 모두에서 NDS 및 DBMS_SQL 을 수행하는 방법에서 실행 실행 시간입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다