我想了解为什么这样的东西在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即可。
然而,我同意,错误信息可能会更好。