在插入 Oracle 之前更改 XML 字段中的文本

Alter text from XML field before inserting into Oracle

我有一列包含 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。我想要 trim 第一个字母,以便我可以在视图中以数字格式 123 显示它并用于我的计算。

谁能指导我在哪里可以完成转换?

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

替换

       SELECT TARGET_ID, TARGET_COST

       SELECT TARGET_ID, TO_NUMBER(TARGET_COST, '9999999999.99999')

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

中的所有可能值