2014-01-09 2 views
0

SAS에서 Teradata 테이블을 가져 오려고합니다. teradata 테이블에는 21 자리 대리 키가 있습니다. SAS에서 가져올 때 대리 키 열은 2.011E12145 형식으로 가져 오지만 실제 값은 21 자리 숫자입니다. 다음 코드SAS에서 대리 키가있는 Teradata 테이블 가져 오기

Data chk; 
format p_key $30.; 
set chk; 
p_key=surrogate; 
run; 

을 시도하지만이 작동하지 않았다?

이 상황을 피하고 숫자 형식으로 가져 오는 방법은 무엇입니까?

답변

0

SAS가 정확하게 저장할 수있는 가장 큰 정수는 2^53-1 (메모리에서 불러 오기)이며 9,007199254740990 (16 자리)입니다. 그러나 Teradata는 SAS보다 2^64-1 (BigInt 데이터 유형)까지의 숫자를 지원합니다.

SAS-Teradata 액세스가 BigInt 유형을 SAS에서 자동으로 변환하여 정밀도를 떨어 뜨리는 것으로 생각됩니다.

http://support.sas.com/kb/39/831.html을 참조하십시오.

내가 볼 수있는 유일한 해결책은 21 자리 키를 문자 유형으로 가져 오는 것입니다. BigInt를 Teradata의 뷰 내부에서 char 데이터 유형으로 변환하면됩니다. (위의 링크에서 다른 방법을 참조하십시오)

관련 문제