2016-10-22 4 views
1

Ich muss cast Funktion mit der Länge der Spalte in Teradata verwenden. Gussvorgang etwas zu verwenden, wieTeradata: zu berechnen, wie die Länge der Spalte

select cast(name as CHAR(<length of column>) from table 

sagen, dass ich eine Tabelle mit folgenden Daten haben,

id | name 
1|dhawal 
2|bhaskar 

ich brauche, wie kann ich das tun?

dank Dhawal

+0

Muss eine feste Länge CHAR sein oder ist ein VARCHAR in Ordnung? – dnoeth

Antwort

0

Sie haben die Länge zu finden, indem bei der Tabellendefinition suchen - entweder manuell (show table) oder durch dynamic SQL schreiben, die dbc.ColumnsV abfragt.

Update Sie die maximale Länge der aktuellen Daten finden

select max(length(cast(... as varchar(<large enough value>))) from TABLE 

Verwendung Aber wenn dies für FastExport ist Ich denke, casting as varchar(large-enough-value) und Nachbearbeitung der 2-Byte-Länge info FastExport enthält zu entfernen, ist eine bessere Lösung (da das Exportieren eines CHAR() zu einer Ausgabedatei fester Länge mit vielen Leerzeichen führt).

Das wissen Sie vielleicht schon, aber nur für den Fall: Teradata empfiehlt normalerweise, zu TPT anstelle der alten fexp zu wechseln.

+0

Ich muss ein Programm in per schreiben, das den schnellen Export verwendet, um Tabellendaten als durch Pipe getrennte Dateien zu speichern. damit es in eine andere Datenbank geladen werden kann. so müssen Cast-Operation verwenden, um Sonderzeichen durch den schnellen Export hinzugefügt entfernen. und müssen auch Dateispeicherplatz, so müssen Cast-Operation mit der Länge der Spalte Daten – Dhawal

+0

Dank für die Antwort, kann ich Spalte Länge finden, aber ich brauche Länge der Daten in der Spalte zu finden, so kann auf diese Länge zu werfen. – Dhawal

+0

@Dhawal sehen Sie die aktualisierte Antwort. – Nickolay

Verwandte Themen