我要将字符串转换为xml列。。我使用了下面的查询:
Select CONVERT(xml,'<x>' + Replace(A.name,':','</x><x>')+'</x>' ) as xDim from Erecharge;
但它显示了错误的sql语法错误。。我想知道上面的问题是什么我也试过这个:
Select Cast('<x>' + Replace(A.name,':','</x><x>')+'</x>' as XML) as xDim from Erecharge;
i5desfxk1#
请查看与mysql服务器版本对应的手册,以获得正确的语法 'XML) as xDim from Erecharge' 这意味着 XML 在这样的表达式中是不正确的:
'XML) as xDim from Erecharge'
XML
CAST('foo' AS XML)
根据文档,允许的值 CAST 类型不包括 XML .此外,使用 + 字符串上的运算符只是一种复杂的方式来呈现零:
CAST
+
mysql> SELECT 'a' + 'b'; +-----------+ | 'a' + 'b' | +-----------+ | 0 | +-----------+ 1 row in set, 2 warnings (0.00 sec)
你想做什么还不完全清楚。mysql有xml函数,但没有xml数据类型。如果您只想生成一个恰好包含xml代码的字符串,那么您需要 CONCAT() :
CONCAT()
mysql> SELECT CONCAT('<date>', CURRENT_TIMESTAMP, '</date>') AS foo; +----------------------------------+ | foo | +----------------------------------+ | <date>2018-10-12 11:44:29</date> | +----------------------------------+ 1 row in set (0.00 sec)
... 当然,您仍然需要确保尖括号和类似的东西不会破坏xml。 CDATA 可能会有帮助(不知道xml函数,我不熟悉。)
CDATA
1条答案
按热度按时间i5desfxk1#
请查看与mysql服务器版本对应的手册,以获得正确的语法
'XML) as xDim from Erecharge'
这意味着XML
在这样的表达式中是不正确的:根据文档,允许的值
CAST
类型不包括XML
.此外,使用
+
字符串上的运算符只是一种复杂的方式来呈现零:你想做什么还不完全清楚。mysql有xml函数,但没有xml数据类型。如果您只想生成一个恰好包含xml代码的字符串,那么您需要
CONCAT()
:... 当然,您仍然需要确保尖括号和类似的东西不会破坏xml。
CDATA
可能会有帮助(不知道xml函数,我不熟悉。)