2017-10-04 1 views
0

Je suis en train de récupérer toutes les données d'une ligne à teradata avec unixtoutes les données Récupérer une ligne de teradata en utilisant unix

je ne reçois pas toutes les données d'une ligne. Il est seulement EXPORTER moitié des données dans le fichier txt dans chaque ligne

J'utilise

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 

J'ai utilisé une largeur maximale mais je ne suis pas en mesure de récupérer toute la ligne, il est seulement aller chercher la moitié de la rangée. Mon chaque rangée a des données énormes

+0

Pouvez-vous fournir la définition de colonne pour 'requesttext'? –

+0

Salut @Rob Paller merci pour la réponse. Ma définition de colonne est RequestText VARCHAR (12500) CARACTERE ENSEMBLE UNICODE PAS CASESPECIFIC FORMAT 'X (255)', –

+1

Je pense que'FORMAT x (255) 'est le démon :-) coz il reviendra juste en commençant' 255' caractères. – zarruq

Répondre

0

Je suis la solution pour ma question

j'ai utilisé

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

et il est aller chercher maintenant toutes les données

Merci à tous pour votre réponse

1

Le cas ci-dessus a été simulé sur bteq et ci-dessous est la conclusion.

Si la définition de colonne contient la clause FORMAT 'X(255)', seuls les premiers caractères 256 sont exportés, sinon toutes les données sont exportées.

Exemple de scénario

Scénario 1: table a une rangée ayant 1017 caractères. Seuls les caractères 255 sont exportés.

définition de table comme ci-dessous

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); 

Scénario 2: table a une rangée ayant 1017 caractères. la ligne entière est exportée.

Tableau définition ci-dessous

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);