我想了解為什么這樣的東西在 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,它被標記為 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 查詢?
uj5u.com熱心網友回復:
從手冊:
以下函式將關系表的內容映射到 XML 值。
這意味著您不能將此函式用于 CREATE TABLE 陳述句,而只能從表中選擇資料并將其轉換為 XML。
然而,錯誤訊息可能會更好,我同意。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/448461.html
標籤:sql xml PostgreSQL 易挥发的
