동적으로 생성 된 SQL을 Teradata에 제출할 방법이 있습니까? 테이블을 비정규 화하는 코드를 작성하는 쿼리를 작성했습니다. 지금 당장은 코드를 내 클라이언트 (SAS)로 가져 와서 두 번째 단계에서 다시 제출합니다. Teradata 매크로 또는 절차에 익숙하지 않습니다. 그 일이 좋을까요?Teradata에서 동적 SQL을 실행하는 방법
create multiset table MYTABLE
( RECID integer generated always as identity
(start with 1
increment by 1
minvalue -2147483647
maxvalue 2147483647
no cycle)
, SNAP_DATE date format 'YYYY/MM/DD'
, EMAIL_DATE date format 'YYYY/MM/DD'
, FREQ integer
)
unique primary index (RECID )
이 테이블은 매일 (SNAP_DATE
)를 채워지며 다른 테이블에 email_date에 대한 변경 사항을 모니터링하는 데 사용됩니다 :
select RUN_THIS
from (
select RUN_THIS, RN
from (
select 'select EMAIL_DATE ' (varchar(100)) as RUN_THIS
, 0 (int) as RN
) x
union all
select ', sum(case when SNAP_DATE = date '''
|| (SNAP_DATE (format 'yyyy-mm-dd') (char(10)))
|| ''' then FREQ else 0 end) as D'
|| (SNAP_DATE (format 'yyyymmdd') (char(8))) as RUN_THIS
, row_number() over (partition by 1 order by SNAP_DATE) as RN
from (select distinct SNAP_DATE
from MYTABLE
where SNAP_DATE > current_date - 30) t1
union all
select RUN_THIS, RN
from (
select 'from MYTABLE group by 1 order by 1;' as RUN_THIS
, 10000 as RN
) y
) t
order by RN
내가 돌아 다음, 제 의뢰인의 파일에 위의 쿼리의 결과를 내보내고 테라 데이타 다시 해당 파일을 제출 : 다음 쿼리는 내 비정규 뷰를 생성하기 위해 실행할 수있는 코드를 반환합니다. 일부 Teradata 객체에이 전체 정의를 저장하여 직접 실행할 수있는 방법이 있기를 희망합니다.
이전에 저장 프로 시저를 사용한 적이 없습니다. 하나를 만들고 사용하는 간단한 예제를 공유 할 수 있습니까? 설명서를 사용할 수는 있지만 어디에서 볼 것인지 잘 모르겠습니다. – BellevueBob
내가 시작할 수있는 예제를 추가했습니다. 추가 질문이 있으면 알려주십시오. –