SQL Developer에서 바인드 변수 입력창 질문드립니다. 0 2 10,672

by 역훈 [PL/SQL] [2016.11.17 22:11:44]


제목 없음.png (10,972Bytes)

안녕하세요. 데이터베이스 공부중인 학생입니다.

공부중에 궁금한점이 생겨 이렇게 질문드립니다.

테스크탑에서 SQL developer로 테스트를 하다가,

노트북에서 같은 익명블록 작성을 하다가 명령문 실행을 했는데

노트북에서 실행할때에만 바인드 입력 창이 떠서 이유를 몰라 이렇게 질문드립니다.

고수님들 답변 기다립니다 ㅜ_ㅜ


var b_id number

execute :b_id := 100;
declare
  v_work_month number;
begin
  select trunc(months_between(sysdate, hire_date))
  into v_work_month
  from employees
  where employee_id = :b_id;
  if v_work_month >= 150 then
    update employees
    set salary = salary * 1.10
    where employee_id = :b_id;
    
    dbms_output.put_line(:b_id||'는 근무개월수가 '||v_work_month||' 입니다. 급여는 10% 인상되었습니다.');
  else
    dbms_output.put_line(:b_id||'는 근무개월수가 '||v_work_month||' 입니다. 급여는 인상할 수 없습니다.');
  end if;
  rollback;
end;
/

 

by jkson [2016.11.18 08:20:38]

SQL developer는 사용해보지 않았지만 보통 변수앞에 : 는 사용자에게 입력받는 값일 때 씁니다.

:bid -> bid로 바꿔보세요.


by 마농 [2016.11.18 09:02:47]

var 와 execute 는 sqlplus 의 명령어이고,
declare ~ begin ~ end 는 PL/SQL 블럭입니다.
두개 영역이 서로 다른데요. 섞어 써서 이상하네요.
pl/sql 만 사용해서 변수 선언하고 사용하는 방식으로 하시는게 맞을 듯 하네요.
declare 에서 b_id 변수 선언하고
변수 사용시엔 콜론 없이 사용하시면 됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입