为什么query_to_xml在Postgres中为volatile查询返回错误



我想了解为什么这样的东西在PostgreSQL中不起作用:

SELECT query_to_xml('CREATE TABLE my_table (my_column INTEGER)', FALSE, TRUE, '')

给出了CCD_ 1。很公平,但当我检查query_to_xml的签名时,它被标记为volatile:

CREATE OR REPLACE FUNCTION pg_catalog.query_to_xml(
query text,
nulls boolean,
tableforest boolean,
targetns text)
RETURNS xml
LANGUAGE 'internal'
COST 100
VOLATILE STRICT PARALLEL UNSAFE
AS [...]

后续问题:如果这是不允许的,有没有其他方法可以在没有PL/PgSQL的情况下运行动态volatile查询?

来自手册:

以下函数将关系表的内容映射到XML价值观

这意味着您不能将此函数用于CREATE TABLE语句,只需从表中选择数据并将其转换为XML即可。

然而,我同意,错误信息可能会更好。

最新更新