2014-08-27 3 views
1

다른 시간에 유사한 쿼리를 실행하려면 where 절과 테이블 이름을 하나씩 변경해야합니다.쿼리 테라 데이타의 사용자 정의 변수

declare ?tablename varchar(100); 
set ?tablename = 'some_table_this_time'; 

declare ?id int; 
set ?id = 12 

select * from ?tablename 
where my_id = ?id 

이 구문은 teradata에서 작동하지 않습니다. 다른 SQL 프로그램에서 @variable 구문을 사용했지만 teradata에서 올바른 방법을 찾을 수 없습니다.

연구 :

http://forums.teradata.com/forum/database/using-parameters-with-queries

How to use variables in Teradata SQL Macros

+0

가능한 중복 :하지만 비슷한 작업을 수행하는 방법의 흥미로운 예를 들어 디터하여이 블로그 게시물을 확인 [이] (http://stackoverflow.com/questions/13895370/how-to -execute-dynamic-sql-in-teradata) – Beth

+1

대부분의 DBMS (Teradata 포함)는 동적 SQL 외부에서 변수로 전달 된 테이블 이름을 지원하지 않습니다. SQL Assistant를 사용하고 있다면 ** select * from? tablename where my_id =? id **를 그대로 실행하면 두 변수에 대한 프롬프트가 표시됩니다. – dnoeth

답변

관련 문제