2016-08-09 83 views
0

ich verwendete##### erscheint anstelle der tatsächlichen Werte in Sql-Tabelle

[Spaltenformat A10; set linesize 1500;]

um die Breite für die Spalte sal und mgr einzustellen. Danach, wenn ich die Tabelle anschaue, erscheinen die Werte in den Spalten mgr und sal als ######. jetzt, wie man die tatsächlichen Werte erhält ??

+0

Ich habe auf dem Inhalt Ihrer Frage auf einigen weiteren spezifischen Tags basieren, zu erraten versucht - wenn sie falsch sind, fühlen Sie sich frei – Bridge

+0

rückgängig zu machen Warum Sie ein String-Länge-Format für eine Reihe Spalte wollen? Wofür ist Ihr 'numformat' eingestellt und wie groß sind die Zahlen in diesen Spalten? –

Antwort

3

Sie verwenden ein ungültiges Formatmodell für eine Zahlenspalte. Die gültigen Elemente sind listed in the documentation. SQL * Plus weiß nicht, was Sie meinen, daher scheint es das gleiche Verhalten zu haben, wenn eine Zahl nicht in ein gültiges Zahlenformat passt: "Wenn ein Wert nicht in die Spalte passt, wird SQL * Plus angezeigt Nummernzeichen (#) anstelle der Zahl. "

Sie würden nur die charcater column formatting wie A10 verwenden, wenn das von der Abfrage zurückgegebene Ergebnis bereits eine Zeichenfolge, z. wenn du es getan hast: to_char(sal, '999G999G999') as sal; aber auch dann ist die maximale Länge bereits vom Formatmodell vorgegeben (in diesem Fall 12, um das Vorzeichen zu ermöglichen).

Sie müssen diese Spalten wahrscheinlich überhaupt nicht formatieren, aber wenn Sie sie als Zahlen abrufen und Formatierungen hinzufügen möchten, müssen Sie ein geeignetes Modell verwenden, z.

column salary format 999G999G999