簡體   English   中英

為什么 query_to_xml 會為 Postgres 中的可變查詢返回錯誤?

[英]Why does query_to_xml return an error for a volatile query in Postgres?

我想了解為什么這樣的事情在 PostgreSQL 中不起作用:

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

它給出ERROR: CREATE TABLE is not allowed in a non-volatile function 很公平 - 但當我檢查query_to_xml的簽名時,它標記為易變的:

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 的情況下運行動態易失性查詢?

手冊

以下函數將 map 關系表的內容轉換為 XML 的值。

這意味着您不能將此 function 用於 CREATE TABLE 語句,只能將表中的 SELECT 數據轉換為 XML。

然而,錯誤信息可能會更好,我同意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM