2017-10-04 52 views
0

我試圖與UNIX使用unix

我沒有得到行中的所有數據獲取Teradata數據中的行中的所有數據抓取的所有數據在一排從Teradata的。它僅導出一半的數據到TXT文件中的每一行中

我使用

bteq <<EOF 
.logmech ldap 
.logon IP/user_name,password 
.EXPORT REPORT FILE=test.txt 
    .SET RECORDMODE OFF; 
    .SET WIDTH 65531; 
.Set Titledashes off; 

select requesttext(title '') from abc.tb 


.export reset; 
.LOGOFF; 
.EXIT; 
EOF 

我用最大的寬度,但我仍不能取整排它只是取的一半行。 我的每一行都有大量的數據

+0

你能提供'requesttext'的列定義嗎? –

+0

Hi @Rob Paller感謝您的回覆。我的列definaltion是RequestText VARCHAR(12500)CHARACTER SET UNICODE NOT CASESPECIFIC FORMAT'X(255)', –

+1

我認爲'FORMAT x(255)'是惡魔:-)因爲它會返回剛剛開始的'255'字符。 – zarruq

回答

0

我得到了解決我的問題

我已經使用

select requesttext (format 'x(12500)')(title '') from abc.tb 

和它現在獲取的所有數據

感謝大家的回覆

1

上面的情況已經在bteq以上被模擬,下面是發現。

如果列定義有FORMAT 'X(255)'子句,則只導出第一個256字符,否則將導出所有數據。

示例方案

方案1:表具有字符1017一排。只有第一個255字符被導出。

表定義如下

CREATE SET TABLE abc ,NO FALLBACK , 
    NO BEFORE JOURNAL, 
    NO AFTER JOURNAL, 
    CHECKSUM = DEFAULT, 
    DEFAULT MERGEBLOCKRATIO 
    (
     c1 VARCHAR(12500) CHARACTER SET UNICODE NOT CASESPECIFIC FORMAT 'X(255)') 
PRIMARY INDEX (c1); 

方案2:表具有字符1017一排。整行輸出。

表定義如下

CREATE SET TABLE abcd ,NO FALLBACK , 
    NO BEFORE JOURNAL, 
    NO AFTER JOURNAL, 
    CHECKSUM = DEFAULT, 
    DEFAULT MERGEBLOCKRATIO 
    (
     c1 VARCHAR(12500) CHARACTER SET UNICODE NOT CASESPECIFIC) 
PRIMARY INDEX (c1);