쿼리내에서 변수 설정에 대해 조언 부탁드립니다. 0 2 518

by oratong [SQL Query] [2019.11.27 23:03:42]


안녕하세요. 조언 부탁드리고 싶습니다.

1. 가령 아래와 같은 쿼리가 어플리케이션 서버를 통해 실행된다 가정할때
select * from emp where empno = :a ;

2. 테스트를 위해서 다음과 같이 설정후에 해당 원본 쿼리를 그대로 실행시키면 문제없이 실행이 됩니다.

var a number

begin
  :a := 3179;
end;
/

select * from emp where empno = :a ;

3. 질문 : 그러나 원본 쿼리의 변수가 다음과 같이 숫자 를 사용할 경우
select * from emp where empno = :1 ;

아래와 같이 숫자 변수를 정의 하려고 하면 애러가 생기게 됩니다.

var 1 number

begin
  :1 := 3179;
end;
/

원본 쿼리의 숫자 이름의 변수명 :1 에 대해서 어떻게 정의를 해주어야 원본 쿼리 그대로를 실행해볼수 있게 될까요.

아무쪼록 좋은 조언 부탁드립니다.

원본 쿼리의 변수명 :1 을 :a 등으로 변경후에 테스트 등과 같은 경우는 목적에 부합하지 않습니다.

해당쿼리를 실행시켜서 원본과 동일한 sql_id를 디비 케쉬상에 적재 시키는것도 목표로 하기 때문입니다.

by 부쉬맨 [2019.11.28 10:20:41]

인티져가 변수명으로 사용하지못할꺼에요

그래서 가이드가 나오는거보면 :B1 형태인거죠.

 


by 대궁이 [2019.12.13 16:07:57]

해당쿼리를 실행시켜서 원본과 동일한 sql_id를 디비 케쉬상에 적재 시키는것도 목표로 하기 때문입니다.

>> 위 기준으로는 변수명은 상관없습니다. Parsing  과정에서 Bind 변수로 입력된거라면 해당 SQL은 이미 동일한거로 판단됩니다.

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