<샘플코드에서 사용한 데이터는 HR 스키마이고, 오라클 설치시 생성할 수 있는 기본 스키마 입니다>
지역번수는 지역을 넘어간 영역에서 접근하면 오류가 발생한다.
declare
v_global varchar2(100):='this is a global variable';
begin
declare
v_local varchar2(100):='this is a local variable';
begin
dbms_output.put_line(v_global);
dbms_output.put_line(v_local);
end;
dbms_output.put_line(v_global);
-- dbms_output.put_line(v_local); --you can not do this
end;
------------------------------------------
this is a global variable
this is a local variable
this is a global variable
Global 변수명과 Local 변수명이 중복될 경우는 동일 영역에서 선언된 변수를 참고한다.
declare
v_father_name varchar2(100):='홍길동';
v_birthday date:='20-Jul-1981';
begin
declare
v_child varchar2(100):='한강';
v_birthday date:='5-Apr-2013';
begin
dbms_output.put_line('the father name is ' ||v_father_name);
dbms_output.put_line('the father birthday is '||v_birthday);
dbms_output.put_line('the child name is '||v_child);
dbms_output.put_line('the child birthday is '||v_birthday);
end;
end;
-----------------------------------------------------------
the father name is 홍길동
the father birthday is 05-APR-13
the child name is 한강
the child birthday is 05-APR-13
Global 변수명과 Local 변수명이 같을 경우,
Local 영역에서 Global 변수를 접근하기 위해서는 begin <<>> ~ end 구조로 처리하면 된다.
<<>> 안에 넣는 키워드는 프로그래머가 임의로 정할수 있다.
begin <<outer>>
declare
v_father_name varchar2(100):='홍길동';
v_birthday date:='26-Jul-1981';
begin
declare
v_child varchar2(100):='한강';
v_birthday date:='5-Apr-2013';
begin
dbms_output.put_line('the father name is ' ||v_father_name);
dbms_output.put_line('the father birthday is '||outer.v_birthday);
dbms_output.put_line('the child name is '||v_child);
dbms_output.put_line('the child birthday is '||v_birthday);
end;
end;
end outer;
-----------------------------------------------------------
the father name is 홍길동
the father birthday is 26-JUL-81
the child name is 한강
the child birthday is 05-APR-13
'Database > PLSQL' 카테고리의 다른 글
006 - [Oracle PL/SQL] IF Statement (1) | 2024.02.08 |
---|---|
005 - [Oracle PL/SQL] Implicit Cursor(암시적 커서) (0) | 2024.02.08 |
003 - [Oracle PL/SQL] Declaring PL/SQL Variables (0) | 2024.02.02 |
002 - [Oracle PL/SQL] Run script (0) | 2024.01.31 |
001 - [Oracle PL/SQL] Block Types (0) | 2024.01.31 |