Oracle Basic PL-SQL 프로그래밍 Basic(1) 변수 및 상수

8118 단어 oracle 기초
PL-SQL 소개
PL-SQL은 Oracle 프로세스 언어와 구조화된 쿼리 언어(SQL)를 결합한 확장 언어이다.구체적으로 PL-SQL은 일반적인 SQL 문구를 바탕으로 프로그래밍 언어의 특징을 추가하고 데이터 조작과 조회 문구를 PL-SQL 코드의 과정성 단원에 조직하여 논리적 판단, 순환 등 조작을 통해 복잡한 기능이나 계산을 실현하는 프로그램 언어이다.
PL-SQL을 사용하면 다음과 같은 이점이 있습니다.
1. 하나의 SQL 문장을 하나의 모듈에 넣을 수 있다.더욱 모듈화된 특징을 가지게 하다.
2. PL-SQL에 논리적 구조 판단, 순환 등 프로그램 구조를 추가할 수 있다.
3. 이상 처리 기능이 있다.프로그램이 중단되지 않도록 하다.
4. 네트워크 상호작용을 줄이고 성능을 향상시킨다.
5. 더 좋은 이식성을 가진다.
 
2. PL-SQL 블록
PL-SQL 블록은 다섯 가지 부분, 성명 부분, 프로그램 세그먼트 시작, 코드 주체 부분, 이상 부분, 프로그램 끝을 포함한다.
DECLARE                    --    

     、  、  、           .... BEGIN   --      

    SQL   PL-SQL             --      

 ... EXCEPTION        ,         。 --     ... END;    --      

참고:
1. 성명 부분과 이상 부분은 선택할 수 있다.
2, DELCARE, BEGIN과 EXCEPTION 후에는 별점이 없고, END와 기타 모든 PL-SQL 문장은 반드시 별점으로 끝내야 합니다!
 
3. 변수의 성명과 할당
1. 변수를 정의하는 문법:
  DECLARE variable_name date_type(size) [not null][:=value]
DECLARE: 변수에 사용되는 키워드를 정의합니다.
  variable_name: 변수의 이름입니다.
  date_type(size): 변수의 유형입니다. size는 데이터 길이를 나타냅니다.
[not null]: 변수는 비워둘 수 없습니다.
[:=value]: 변수에 초기 값을 지정합니다.
예:
DECLARE v_name varchar2(20); --             v_age number:=&age;     --              &age      ,                 。

PL-SQL의 변수 명명 규칙:
1. 변수 이름의 첫 글자는 반드시 영문자여야 하며, 뒤에 알파벳, 숫자, 밑줄, #, $를 따라갈 수 있다.
2. 변수 이름은 30자를 넘지 않습니다.
3. 변수 이름에 공백이 있을 수 없습니다.
4. 키워드 이름을 사용할 수 없습니다.
변수 선언은 보통 문자 v접두사!
참고:
변수의 성명은 현재 프로그램 블록에서만 유효합니다.
 
2. 변수의 사용과 할당
a. 사용: = 할당
  v_name := 'wangwu'; -- 변수에'wangwu'값을 직접 부여 vname;
  
b. select를 사용하십시오..into..할당
DECLARE

  PROID NUMBER := &ID;

  PNAME VARCHAR(20);

BEGIN

  SELECT NAME INTO PNAME FROM ES_PRODUCT WHERE ID = PROID;  -- name     pname

  DBMS_OUTPUT.PUT_LINE(PNAME);

END;

 
참고:
1) 질의 결과는 단일 레코드만 반환할 수 있으며 여러 레코드 또는 0레코드는 예외를 반환합니다.
2) into 문장은 select와from 문장 사이에 있어야 한다.
3) into에서 검색한 데이터 형식은 변수의 형식과 일치해야 합니다.
4) into 뒤에 부여된 변수의 개수는 select가 조회한 변수의 개수와 일치해야 한다.
 
PL-SQL 코드 블록을 명령줄로 실행하는 경우 실행 코드 블록을 사용/표시한 후 set serveroutput on을 통과합니다.출력 내용 오픈!
c. 한 번에 여러 변수에 값을 부여하고 변수의 유형은 표의 유형을 사용한다.
DECLARE

  v_id NUMBER := &ID;                    --      

  v_name  es_product.Name%TYPE;           --    , es_product.name     

  v_price es_product.Price%TYPE;  

BEGIN

  SELECT p.name,p.price
 INTO v_name, v_price
 FROM es_product p
 WHERE ID=v_id; -- , 。 DBMS_OUTPUT.PUT_LINE('id:' || v_id || 'name:' || v_name || 'price:' || v_price); -- END;

 
d. 여러 변수의 값을 저장할 수 있는 데이터 행을 정의합니다.기록된 열을 전체적으로 저장하는 정보(유사한 객체 방식)
DECLARE

  v_id NUMBER := &ID;

  v_row es_product%ROWTYPE;             --    ,es_product.rowtype esproduct    
BEGIN 
  SELECT p.name,p.price
  INTO v_row.name, v_row.price
  FROM es_product p
  WHERE ID=v_id;
  DBMS_OUTPUT.PUT_LINE(
'id:' || v_id || 'name:' || v_row.name || 'price:' || v_row.price);
END;

 
4. 상량의 성명과 사용
Oracle에서 일부 값을 수정하지 않으려는 경우 상수로 선언할 수 있습니다.
구문:
상수 이름 CONSTANT 상수 유형: = 초기 값.
DECLARE

  C_MSG CONSTANT VARCHAR2(20) := '    ';

BEGIN

  C_MSG := 'aaa';

END;

선언 상수 CMSG는 문자열 유형이며 프로그램 중에 상수 값을 수정하면 예외가 발생합니다.

좋은 웹페이지 즐겨찾기