0

我有一列包含 XML 格式的数据。我正在基于该 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 显示它并用于我的计算。

谁能指导我在哪里可以进行转换?

4

1 回答 1

1

在视图定义中,在 AS 之后的 SELECT 子句中(代码第 7 行)

代替

       SELECT TARGET_ID, TARGET_COST

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

这将同时将 $ 解释为货币符号(无需删除它)并将值转换为 NUMBER。只需确保格式模型在小数点两边包含足够的 9,以涵盖 XML 表中所有可能的值。

于 2017-07-15T00:31:51.877 回答