2017-02-07 7 views
0

Ich versuche Floating-Point-Daten aus einer Sybase-Datenbank genau so zu erhalten, wie sie gespeichert sind, indem ich isql in einem Shell-Skript verwende, um es in eine andere Tabelle kopieren zu können. Das Problem, auf das ich gestoßen bin, ist, dass diese Zahlen auf höchstens sechs Dezimalstellen gerundet werden. Dieses Verhalten ist in der Dokumentation vermerkt (exaktes Zitat, "isql zeigt nur sechs Ziffern von float oder echte Daten nach dem Dezimalpunkt an und rundet den Rest ab."), ​​Aber ich möchte immer noch einen Weg finden, da ich nicht weiß Ich habe keine anderen Werkzeuge, mit denen ich arbeiten kann.Sybase isql begrenzt die Ausgabe auf sechs Dezimalstellen - Wie umgehen Sie das?

Ich habe versucht, CONVERT und CAST in meinen Abfragen, sowohl DOUBLE und VARCHAR, aber ohne Glück.

Gibt es eine Möglichkeit, diese Einschränkung zu umgehen?

Antwort

1

Explizit konvertieren Sie es auf der Serverseite auf maximale Präzision, z. SELECT CONVERT (numeric (38,18), your_col) FROM your_table

+0

vergessen Umwandlung in eine Zeichenfolge hinzuzufügen: SELECT CONVERT (VARCHAR (60), CONVERT (numeric (38,18)), your_col) FROM your_table – RobV

+0

Yep das hat funktioniert. Vielen Dank! – Kirill

Verwandte Themen