2013-02-25 1 views
2

Oracle Data Integrator를 사용하여 일부 ETL을 개발하고 때로는 TOAD로 코드 일부를 테스트합니다. 오늘은 내가 위의 필터를 포함하는 SQL을 실행하려고 할 때 나는TOAD는 바인드 변수로 생각합니다 &

AND column_value like('DEV&PROD') 

같은 라인을했다 두꺼비에 문제가 있었다, 두꺼비는 PROD의 값을 요구, 그것은 PROD 같은 생각 바인드 또는 대체 변수입니다. 이 기능을 사용하려면 TOAD 설정에 옵션이 있습니까? 열 (:)을 사용하여 바인드 변수를 사용하고 있으며 데이터에 &이 포함되어 있으므로 사용해야합니다.

이 코드는 ODI에서 완벽하게 작동하며 TOAD 용 솔루션 만 필요합니다. 미리 감사드립니다.

답변

4

1)
또는
이 2) 'DEV&PROD'
또는
3) 변수

set define ~; 
select 'drag&drop', ~column_name from ~table_name; 
또 다른 접두어 기호를 설정 'DEV&'||'PROD' 대신 사용) set define off;하여 스크립트를 시작 (및 F5 키를 전체 스크립트를 실행

(column_name과 table_name은 입력해야하지만 'drop'은 입력하지 마십시오)

+0

첫 번째 방법은이 경우 감사 완벽하게 작동하지만, I를 : bind_var 에고의 또는 내 예제 사용

SELECT ('DEV'||'&'||'PROD') val FROM dual / -- Q-quote operator introduced in Oracle 10g -- SELECT 'DEV' || q'[&]'||'PROD' AS val FROM dual / 

복사/붙여 넣기를 위해 1을 입력 열과 함께 바인드 변수를 사용하려고하면이 변수도 무시됩니다. 그리고 나는 하나 이상의 조각으로 내 끈을 쪼개지 않을 것입니다. 어쨌든 사용할 수있는 : bind_variable 및 무시 & not_a_variable 내 문자열을 분할하지 마십시오. 미리 감사드립니다. –

+0

@ CanburakTümer - 예, 추가 된 해결책 # 3 참조 –

0

또한 - wil 어떤 도구 또는 SQL 프롬프트에서 L 작업 : -

SELECT 'DEV&'||'PROD' val FROM dual 
WHERE :bind_var = 1 
/