Oracle - wie Leerzeichen entfernen?
Ich bin mit dieser Aussage:
select trim(a),trim(b) from table x;
Obwohl ich früher die trim () - Anweisung, meine Ausgabe sieht wie folgt aus:
A B
___ ____
kunjramansingh smartdude
Den Datentyp der Spalte 'a' und 'b' varchar2(255).
Gibt es eine Lücke zwischen den Daten der zwei-output. Ich möchte zeigen die Daten ohne Leerzeichen - in einem format wie diesem:
A B
___ ______
kunjramansinghsmartdude
Wie kann ich dies tun?
- Warten Sie, sprechen wir die Daten zurückgegeben oder die Anzeige der Abfrage-Ergebnisse? SQL*PLUS?
- Hi curtisk,Wir reden über die zurückgegebenen Daten>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update:
Nur strings verketten:
Sieht es aus wie Sie die Ausführung der Abfrage in sqlplus. Sqlplus braucht, um sicherzustellen, dass es genug Platz in der Spalte Abstand, so dass die maximale string-Länge angezeigt werden kann(255). In der Regel, die Lösung ist die Verwendung der Spalte Formatierung Optionen(Führen Sie vor der Abfrage: column format A20) reduzieren die maximale Zeichenfolge, die Größe (Zeilen, die diesen Wert überschreiten, wird die Länge angezeigt, die über mehrere Zeilen).
Wenn ich das richtig verstehe, das ist, was Sie wollen
können Sie 'rpad' in Ihre select-Abfrage, und geben Sie die Größe ...
dem der erste parameter ist die Spalte name und der zweite parameter ist die Größe, die Sie möchten, pad mit .
Das klingt wie eine Ausgabe-Formatierung-Problem? Wenn Sie die SQL Plus, verwenden Sie die SPALTE Befehl so aus (vorausgesetzt, Sie wollen eine maximale display-Breite von 20 Zeichen für jeden):
SQL-Plus-format die Spalten an, halten Sie die maximale möglich Wert, in diesem Fall ist 255 Zeichen.
Um zu bestätigen, dass Ihre Ausgabe nicht tatsächlich enthalten diese zusätzliche Leerzeichen, versuchen Sie dies:
Wenn die ' /' - Zeichen getrennt sind von Ihrem Ausgang, der dann angibt, dass es nicht die Räume, sondern auch einige andere whitespace-Zeichen, das dort (Tabletten, zum Beispiel). Wenn das der Fall ist, dann ist es wohl ein input-Validierung Problem irgendwo in der Anwendung.
Jedoch das wahrscheinlichste Szenario ist, dass der ' /' - Zeichen wird in der Tat berühren Sie den rest Ihres strings, was beweist, dass der Leerraum ist eigentlich getrimmt.
Wenn Sie ausgeben möchten Sie zusammen, dann ist die Antwort Quassnoi sollte es tun.
Wenn es rein ist ein Problem angezeigt, dann die Antwort von Tony Andrews sollte funktionieren.
Sagen, wir haben eine Spalte mit Werten, die aus alphanumerischen Zeichen und dem Unterstrich nur. Wir trimmen müssen diese Spalte aus alle Leerzeichen, tabs oder was auch immer weiße stellen.
Im unten stehenden Beispiel wird das problem lösen. Der getrimmte one und das original-beide werden angezeigt für Vergleich.
select '/'||REGEXP_REPLACE(my_column,'[^A-Z,^0-9,^_]','')||'/' my_column,'/'||my_column||'/' from my_table;
Verwenden Sie die folgenden zu versichern, es gibt keine Leerzeichen in der Ausgabe:
Ausgabe
John,Smith
Jane Doe
Wenn Sie möchten, zu ersetzen, Leerzeichen in einer bestimmten Spalte ein Wert steht, können Sie das folgende Skript verwenden, um die Arbeit zu tun für Sie,
Habe ich folgenden Befehl zum entfernen des weißen Bereichs in der Oracle -
Meine Tabelle Name ist - NG_CAP_SENDER_INFO_MTR
Meine Spalte Name ist - SENINFO_FROM
Bereits die Antwort auf StackOverflow LTRIM RTRIM
Und seine Arbeitsmethoden in Ordnung
Führen Sie folgenden Abfrage ersetzen TABLE_NAME & COLUMN_NAME mit Ihrem aktuellen Tabelle & column-Namen: