1. 선언
identifier [constant] datatype [not null] [ := | Default expr ] ;
EX> v_hiredate DATE; v_deptno NUMBER(2) NOT NULL := 10; v_location VARCHAR2(13) := ‘Atlanta’; v_comm CONSTANT NUMBER := 1400;
설명
identifier : 변수명 Constant : 상수(변경불가). 상수는 초기화 필수. datatype : 데이터 타입(date, number, varchar2…) Not Null : 변수제약. Not Null 변수는 초기화 필수. expr : 표현식(리터럴, 다른 변수, 연산자나 함수를 포함하는 표현식)
주의
두 변수는 서로 다른 block 에서라면 동일 이름을 가질 수 있고, 변수명은 block에서 사용 된 테이블 column의 이름과 같아서는 않된다.
2. 변수에 값 지정하기
idenfier := expr ;
EX> v_empno := 7369;
v_name := 'SMITH';
v_limitdate := Sysdate + 7;
3. %TYPE을 이용한 변수 선언 : 변수의 데이터형과 정밀도를 직접 선언하지 않고 이미 선언된 변수나 데이터베이스의 열에 맞추어 선언할 수 있음. 데이터베이스 수준에서 열 데이터형이 변경되더라도 PL/SQL은 수정할 필요없음.
identifier tablename.columnname%Type; identifier defined identifier%Type;
identifier : 변수명. tablename : 참조하고자 하는 테이블명. columnname : 참조하고자 하는 필드명. defined identifier : 이미 선언된 변수명.
4. %ROWTYPE을 이용한 변수 선언 정의할 변수가 특정 테이블, 뷰의 모든 컬럼을 대상으로 선언해야 할 경우 테이블, 뷰의 모든 컬럼의 데이터형, 크기, 속성등을 그대로 사용할 수 있음. EX> v_emp emp%ROWTYPE; 5. 바인드 변수 : Host 환경에서 PL/SQL에게 값을 전달하거나 전달받기위해 선언된 변수.
VAR[IABLE] 변수명 [ NUMBER | CHAR(n) | VARCHAR2(n)]
EX> variable ret_code number
PL/SQL에서, bind variable을 참조하기 위해 콜론(:)을 변수명의 접두어로 붙임. EX> ... Begin Select sal Into v_sal From emp Where empno = 7369; :salary := v_sal; ...
6. 치환변수 : 입력 프롬프트에서 블록 내부로 직접 값을 전달하는 변수 SQL>Set Verify Off SQL>Accept 변수명 Prompt ‘값을 등록하세요: ’
PL/SQL 블록 내부에서 치환변수 사용시 &변수명 사용 EX> v_name varchar2(20) := &p_name;
※ SET VERIFY ON/OFF : &를 이용한 치환 변수를 사용할 때 치환되기 전/후의 자세한 값을 보일것인지의 여부를 결정 한다. 기본값은 ON 이다. |