15일차 # 2-25: Bind variables
- PL/SQL block이 아닌 환경(SQL*Plus, iSQL*Plus)에서 생성
- PL/SQL block이 종료되어도 값을 읽을 수 있다
- 서버와 연결이 끊어지면 값을 참조할 수 없다 (cf. 클라이언트(환경) 종료)
* 바인드 변수 선언 및 확인: SQL*Plus Command
- 선언: VAR[IABLE] [variable [type]]
- 확인: VAR[IABLE] [varaiable]
* 바인드 변수 사용
: 바인드 변수 이름 앞에 :(콜론)을 붙임
--------------------------
var
SP2-0568: 바인드 변수가 정의되지 않았습니다.
var a number -- NUMBER 형 바인드 변수에 (p, s) 지정할 수 없음
var
변수 a
데이터유형 NUMBER
var a
데이터유형 NUMBER
print a
A
----------
begin
select avg(sal) into :a
from emp;
end;
/
print a
A
----------
2073.21429
disconnect
print a
SP2-0640: 연결되지 않았습니다.
SP2-0641: "PRINT"(이)가 서버로 연결하는데 필요합니다
var a
변수 a
데이터유형 NUMBER
connect ??/??@211.183.3.52:1521/orcl
연결되었습니다.
print a
A
----------
2073.21429
select * from emp
where sal >= :a;
exit
sqlplus top20/top20@211.183.3.52:1521/orcl
print a
SP2-0552: 바인드 변수 "A" 가 정의되지 않았습니다.
var a
SP2-0552: 바인드 변수 "A" 가 정의되지 않았습니다.