2016-04-23 8 views
0

Ich habe einen Tabellennamen "Währung" und es hat einen Spaltennamen "cur" des Typs DECIMAL (12,6). Ich möchte diese Größe auf DECIMAL erhöhen (12,8). Bitte schlagen Sie mir die Anfrage dazu in Teradata vor. Ich möchte keine früheren Daten verlieren.Teradata-Abfrage für die Aktualisierung der Spaltengröße

+0

alter table hinzufügen DECIMAL (12,8) –

+0

@AritraBhattacharya das funktioniert nicht. Gibt es einen anderen Weg? danke –

Antwort

0

Das Ändern der Genauigkeit eines DECIMAL ist nicht erlaubt (Sie könnten, wenn dies stattdessen ein NUMBER wäre).

Der beste Weg ist wahrscheinlich:

  • eine neue Tabelle mit dem richtigen Datentyp
  • MERGE die alte in die neue
  • DROP die alte und RENAME abst

erstellen Natürlich sollten Sie auch die Skalierung auf DECIMAL (14,8) erhöhen, sonst erhalten Sie möglicherweise einen numerischen Überlauf Fehler

+0

Ich habe eine neue Tabelle mit aktualisierten Spaltengröße erstellt. Jetzt, wie man es zusammenführt? Bitte sagen Sie eine einfache Abfrage ohne irgendwelche Bedingungen, weil ich möchte, dass alle Daten ohne Datenverlust in der neuen Tabelle zusammengeführt werden. Danke –

+0

Bitte schlagen Sie vor, ich suchte viel und versuchte so viele Dinge, aber ich bin nicht in der Lage, Daten von einer Tabelle in eine andere zu kopieren –

+0

@SanjeetSingh: Sie können einfach einfügen/auswählen, aber mit 'MERGE' (http://www.info. teradata.com/HTMLPubs/DB_TTU_15_10/SQL_Reference/B035_1146_151K/ch03.023.159.html) ist effizienter, siehe: http://developer.teradata.com/blog/dnoeth/2013/08/why-dont-you-use- alter-table-to-alter-a-table – dnoeth

Verwandte Themen