프로그래머로서 Oracle은 복잡한 SQL을 작성하는 방법을 모릅니다. PL / SQL은 배울 가치가 있습니다.

이 기사는 주로 PL / SQL 언어에 대해 설명합니다.주의 깊게 공부하지 않은 사람들은 오라클 클라이언트가 아니라고 생각할 것입니다. 이것은 그렇지 않습니다. 절차 적 프로그래밍 언어입니다. 함수는 SQL을 기반으로 구축되었습니다. 작성하는 데 사용됩니다. SQL 문을 포함하는 프로그램. 필요한 친구들, 편집자와 함께 공부합시다.

개인적으로 PL / SQL 언어가 특히 유용하다고 생각하고 일반 SQL로는 해결할 수없는 많은 문제를 겪었습니다. 나는 당신이 그것을 만났는지 모르겠습니다.

PL / SQL 소개

PL / SQL은 절차 적 언어입니다. PL / SQL에서 루프는 IF 문이나 LOOP 문을 통해 구현할 수 있으며 변수도 정의 할 수 있습니다. 이는 백엔드 코드와 매우 유사합니다.

일반적인 SQL 문 (예 : DML 문, DQL 문)과 마찬가지로 흐름 제어가없고 변수도 없습니다. 물론 PL / SQL은 일반 SQL을 내부에 중첩 할 수 있으며 SQL 문과 협력하여 순수 SQL이 완료 할 수없는 일부 문법을 완성 할 수 있습니다.

개발 과정에서 우리는 일반적으로 복잡한 과거 데이터를 다루거나 프로그램 최적화에 사용합니다.

PL / SQL 블록 구조

PL / SQL 프로그램은 모두 블록을 기반으로하며 전체 PL / SQL 블록은 세 부분으로 나뉩니다.

declare
  --声明部分,不定义变量的情况下可以省略declare
begin
  --执行部分,必须
exception
  --异常处理部分,可选可不选
end;

선언 부분 (declar로 시작)

선언 부분은 선언으로 시작하고 시작으로 끝납니다. 그 사이에 변수, 상수, 커서 등을 작성하는 데 사용할 수 있습니다.

실행 부분 (시작으로 시작)

실행 부분은 BEGIN 키워드로 시작합니다. 코드에 예외가 있으면 실행이 완료되면 예외 처리가 종료됩니다. 예외가 없으면 END 키워드로 끝납니다.이 부분에는 논리 제어 및 연산이 작성됩니다. 여러 PL / SQL 문과 SQL 문을 작성할 수 있습니다.

예외 처리 부분 (예외로 시작)

예외 처리 부분은 예외로 시작됩니다.이 키워드가 실행되면 전체 PL / SQL 블록이 종료되었음을 의미합니다. PL / SQL 코드 (주 실행 부분) 실행 중에 다음과 같은 예기치 않은 오류가 발생할 수 있습니다. 제수 0, null 값이 계산에 참여합니다. 이러한 오류로 인해 프로그램이 중단되고이 부분에서 일부 예외 처리를 수행 할 수 있습니다. 오류가보고되면 오류 메시지가 표시되어 원인이 오류를 빠르게 식별 할 수 있습니다. WHEN THEN 문을 사용하여 IF와 유사한 분기 판단을 실현 한 다음 각 분기에서 예외를 처리하는 코드를 작성할 수 있습니다.

시작 실행 부분은 필수이고 다른 두 부분은 선택 사항입니다.

참고 : 각 문은 세미콜론으로 끝나야합니다. 여러 줄로 작성할 수 있지만 세미콜론으로 끝낼 수도 있습니다.

PL / SQL을 빠르게 생성하는 방법

plsqldev 클라이언트를 사용하고 있지만 생성 된 클라이언트는 예외 처리가 없으므로 직접 추가합니다.
이 Test windou는 PL / SQL 작성에 전념하고 있으며 디버그도 지원합니다.

그의 문장은 일반 SQL 창에서도 실행할 수 있지만 디버깅이나 학습을 위해이 창을 사용하는 것이 좋으며 인쇄 된 값은 DBMS 창에서 볼 수 있습니다.

여기에 사진 설명 삽입

PL / SQL 간단한 코드 예제

이 예제에는 반복, 순회, 변수 할당, 출력 문 및 예외 처리와 같이 일반적으로 사용되는 몇 가지 예제가 포함됩니다. 전혀 건드리지 않은 사람들에게는 조금 귀엽게 보이지만이 코드를 클라이언트에 직접 복사하여 배울 수 있습니다.

-- Created on 2020/12/17 by GUO 
declare
  i int := 3; --声明一个变量i = 3
  c number;
begin
  --定义一个循环,当i大于-2的时候退出循环
  while i > -2 loop
    i := i - 1; --等同于 i = i--
    c := i / i; --c = i除i ,也就是i终究会有等于0的时候
    dbms_output.put_line(c);
  end loop;
exception
  WHEN zero_divide then
    dbms_output.put_line('除数不能为零!');
end;

작업 결과 :

여기에서 dbms_output.put_line에 의해 인쇄 된 값을 볼 수 있습니다.

이론적으로 그는 루프를 종료하기 위해> -2를 썼기 때문에 1을 다시 출력해야하지만 0과 같으면 0으로 나누는 것이 오류로보고되어 실행 부분이 직접 종료되고 예외 처리를 건너 뜁니다.

여기에 사진 설명 삽입

문법적으로주의를 기울일 필요

1. 주석의 경우 일반적으로-(가로 막대 2 개)를 사용하지만 한 줄을 초과 할 경우 각 줄의 시작 부분에 적용해야합니다
.- (커넥터) 2. 여러 줄 주석은 / *로 시작하고 다음으로 끝날 수 있습니다. * /
3. 정의 변수, 각 줄은 하나의 변수 또는 상수 만 정의 할 수 있습니다
. 4. 변수를 정의하고 이름은 (AZ, az)로 시작해야하며 최대 길이는 30입니다. 다른 문자로 시작하는 경우 큰 따옴표를 사용합니다. 확장해야합니다.
5. 변수를 정의 이름은 당신이 다른 문자로 시작하는 경우 _, $, #, 당신은 큰 따옴표로 확장해야 AZ, AZ, 0-9, 사용할 수있는 전용입니다.
6. 변수를 정의합니다. 이름은 select update와 같은 키워드를 사용할 수 없습니다. 이러한 키워드를 사용하는 경우 Naming은 큰 따옴표로 묶어야합니다.
7. 변수 할당 및 문자열 텍스트 할당은 작은 따옴표로 묶어야합니다.
8. oracle 10g 이후 문자열에 작은 따옴표가 포함 된 경우 [], {}, <>를 사용하여 변수에 값을 할당 할 수도 있습니다. 그런 다음 구분 기호 앞뒤에 작은 따옴표를 추가 할뿐만 아니라 접두사에 q를 추가해야합니다.

A:= q'[iwdwad]';

기사 요약

이 글은 PL / SQL의 힘과 그것이 무엇을 할 수 있는지에 대한 예비적인 이해를 제공 할뿐입니다. 다음에서는 PL / SQL에서 변수, 커서 등의 기능을 요약 할 시간을 찾으려고 노력할 것입니다.

어제 정리 한 PL / SQL이 지원하는 3 개의 루프로 딥 러닝을 원하는 분들은이 글을 다시 읽어보실 수 있습니다.

PL / SQL주기 : https://blog.csdn.net/weixin_43888891/article/details/111305170 .

추천

출처blog.csdn.net/weixin_43888891/article/details/111318866