0

SQL ビューで REPLACE を使用して、プロパティ番号からスペースを削除しています。関数は、この REPLACE(pin, ' ', '') のように設定されます。グリーンスクリーンでは、クエリはうまく見えました。それ以外では、フィールド内の文字の 16 進値を取得します。エンコーディングの問題だと思いますが、どうすれば修正できますか?

ビューの作成に使用したステートメントは次のとおりです。

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

更新:以下に回答を投稿しました。

4

3 に答える 3

2

必要な結果を得るために、concat と substring を使用することになりました。

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
于 2008-09-23T20:50:47.030 に答える
1

ここでの問題は、そのフィールドの空白文字が実際には他の印刷できない文字であると考えることである可能性があります。

次のSQLを使用して、4番目の位置にあるASCII文字を確認できます。

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

そうすれば、空白の代わりにその文字の置換を使用できるようになります。

SELECT replace(RCAPIN,chr(9))
FROM YOUR-TABLE
于 2008-09-23T21:55:13.910 に答える
0

空の文字列ではなく、NULL を使用してみてください。つまり、REPLACE(RCAPIN, ' ', NULL)

于 2008-09-23T20:04:44.143 に答える