2014-07-25 3 views
1

SQL Developer에서 SPOOL과 함께 사용할 다른 변수를 기반으로 한 구문을 변수로 정의 할 수 있습니까?SQL Developer는 함수 및 연결을 사용하여 대체 변수를 정의합니다.

예를 들어

:

define startdate='01-JAN-14' 
define sdt=SUBSTR(&&startdate,4,3) 

SPOOL &&sdt._File.csv 

나에게 출력 "JAN_File.csv"

나는 그것이 작동하지 않습니다 알고주기 나는 그것을 테스트했기 때문에 나는 그것을 연구하는 시도했지만, 동일한 출력을 얻으려면 해결 방법이 있습니까?

+1

제목이 SQL * Plus를 지정하지만 질문은 SQL Developer를 나타냅니다. 어떤 쿼리 도구가 중요합니까? 그들은 다르게 행동합니다. 질문의 제목과 본문이 일치하도록 변경할 수 있습니까? –

+0

나는 나의 요구를보다 정확하게 반영 할 수 있도록 내 제목을 편집했다. SQL Developer를 사용하고 있습니다. 잡으러 와줘서 고마워. – Fro

답변

1

꽤하지 않습니다하지만 당신이 정말로 중간 단계로 바인드 변수를 사용할 수 있습니다 당신에게 원하는 경우 :

define startdate='01-JAN-14' 

var bind_sdt varchar2(3); 
exec :bind_sdt := SUBSTR('&&startdate',4,3); 
column sub_sdt new_value sdt; 
select :bind_sdt as sub_sdt from dual; 

SPOOL &&sdt._File.csv 

column ... new_value command은 바인드 변수 선택 목록 항목에서 대체 변수를 만들고있다, 이는 하위 문자열입니다.

set termout off 및 다시 execselectset verify off으로 변경할 수 있습니다. 시작 날짜 문자열의 출처가 어디인지는 알려지지 않았으므로 나는 이것을 define으로 남겼습니다.

관련 문제