我有一个包含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中显示它并用于我的计算。
有人可以指导我进行转换的地方吗?
答案 0 :(得分:1)
在视图定义中,紧跟在AS之后的SELECT子句中(代码的第7行)
替换
SELECT TARGET_ID, TARGET_COST
与
SELECT TARGET_ID, TO_NUMBER(TARGET_COST, '$999999999999.99999')
这会同时将$解释为货币符号(无需删除)和将值转换为NUMBER。只需确保格式模型在小数点两边包含足够的9,以覆盖XML表中的所有可能值。