Frage

Ich verwende in einer SQL-Ansicht REPLACE die Räume von einer Immobiliennummer zu entfernen. Die Funktion ist wie folgt REPLACE-Setup (PIN, '', ''). Auf dem Grün-Bildschirm sah die Abfrage in Ordnung. In etwas, was wir bekommen den Hex-Wert des Zeichens in dem Feld ein. Ich bin sicher, dass es eine Codierung Sache, aber wie kann ich das Problem beheben?

Hier ist die Aussage, die ich verwenden, um die Ansicht zu erstellen:

CREATE VIEW RLIC2GIS AS SELECT REPLACE(RCAPIN, ' ', '') AS 
RCAPIN13 , RLICNO, RONAME, ROADR1, ROADR2, ROCITY, ROSTAT, ROZIP1, 
ROZIP2, RGRID, RRADR1, RRADR2, RANAME, RAADR1, RAADR2, RACITY,     
RASTAT, RAZIP1, RAZIP2, REGRES, RPENDI, RBLDGT, ROWNOC, RRCODE,    
RROOMS, RUNITS, RTUNIT, RPAID, RAMTPD, RMDYPD, RRFUSE, RNUMCP,     
RDATCP, RINSP, RCAUKY, RCAPIN, RAMTYR, RYREXP, RDELET, RVARIA,     
RMDYIN, RDTLKI, ROPHN1, ROPHN2, ROCOM1, ROCOM2, RAPHN1, RAPHN2,    
RACOM1, RACOM2, RNOTES FROM RLIC2

UPDATE:. Ich stellte die Antwort unter

War es hilfreich?

Lösung

Am Ende haben wir mit concat und String, um die Ergebnisse zu bekommen wir wollten.

CREATE VIEW RLIC2GIS AS                                  
SELECT CONCAT(SUBSTR(RCAPIN,1,3),CONCAT(SUBSTR(RCAPIN,5,2),      
CONCAT(SUBSTR(RCAPIN,8,2), CONCAT(SUBSTR(RCAPIN,11,3),           
SUBSTR(RCAPIN, 15,3))))) AS CAPIN13, RLICNO, RONAME, ROADR1,     
ROADR2, ROCITY, ROSTAT, ROZIP1, ROZIP2, RGRID, RRADR1, RRADR2,   
RANAME, RAADR1, RAADR2, RACITY, RASTAT, RAZIP1, RAZIP2, REGRES,  
RPENDI, RBLDGT, ROWNOC, RRCODE, RROOMS, RUNITS, RTUNIT, RPAID,   
RAMTPD, RMDYPD, RRFUSE, RNUMCP, RDATCP, RINSP, RCAUKY, RCAPIN,   
RAMTYR, RYREXP, RDELET, RVARIA, RMDYIN, RDTLKI, ROPHN1, ROPHN2,  
ROCOM1, ROCOM2, RAPHN1, RAPHN2, RACOM1, RACOM2, RNOTES FROM RLIC2

Andere Tipps

Das Problem könnte sein, dass Sie denken, was in diesem Bereich die Leerstelle ist eigentlich ein anderes nicht druckbare Zeichen.

Sie können den folgenden SQL verwenden, um zu sehen, was ASCII-Zeichen an der 4. Position ist:

select ascii(substr(RCAPIN,4,1)) 
FROM YOUR-TABLE

Dann würden Sie in der Lage sein, für dieses Zeichen ein ersetzen zu verwenden, anstatt den leeren Raum:

select replace(RCAPIN,chr(9))
FROM YOUR-TABLE

Versuchen Sie NULL anstatt eine leere Zeichenkette verwenden. d.h. REPLACE (RCAPIN, '', NULL)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top