2017-07-14 8 views
0

XML形式のデータを持つ列があります。私はそのXMLデータに基づいてビューを作成しています。Oracleに挿入する前にXMLフィールドからテキストを変更

XMLからデータを取得して表示するコードは、次のコードと似ています。私の元のコードは120〜150列です。

CREATE VIEW Test.TEST_VW 
(
    TARGET_ID, 
    TARGET_COST 
) 
AS 
    SELECT TARGET_ID, TARGET_COST 
     FROM TABLE_XML, 
      XMLTABLE (
       '/root/Data' 
       PASSING XML.DATA 
       COLUMNS TARGET_ID VARCHAR2 (50) PATH 'TARGET_ID', 
         TARGET_COST VARCHAR2 (50) PATH 'TARGET_COST') 
     WHERE XML.TARGET_ID = 4 
    ORDER BY TARGET_ID; 

TARGET_COSTのデータは、XMLで$ 123として保存されます。最初の文字をトリミングして、数値フォーマット123で表示し、計算に使用できるようにしたいと思います。

変換をどこで実行できるのか教えてくれる人は誰ですか?右のAS(コードの行7)

後のSELECT句のビュー定義で

+0

TARGET_COSTの投影が常に '$'で始まり、それ以外の場合は有効な数値であることが保証されている場合は、この 'to_number(substr(target_cost、2))'を使用します。それ以外の場合は、データを表示します。 – jeff6times7

答えて

1

、これは同時に通貨として$を解釈します

 SELECT TARGET_ID, TO_NUMBER(TARGET_COST, '$999999999999.99999') 

 SELECT TARGET_ID, TARGET_COST 

を置き換えますシンボル(削除する必要はありません)は、値をNUMBERに変換します。フォーマット・モデルには、XML表の可能なすべての値をカバーするために、小数点の両側に十分な9が含まれていることを確認してください。

関連する問題