0
我想獲取postgresql中存儲過程的參數列表,有沒有任何查詢來獲取參數?如何獲取postgresql中存儲過程的參數列表
我有一個系統過程做相同的,那就是:
SELECT pg_get_function_identity_arguments('funcname'::regproc);
但這裏的時候,有同名的多個功能那麼它會返回一個錯誤。
任何解決方案?
在此先感謝..
我想獲取postgresql中存儲過程的參數列表,有沒有任何查詢來獲取參數?如何獲取postgresql中存儲過程的參數列表
我有一個系統過程做相同的,那就是:
SELECT pg_get_function_identity_arguments('funcname'::regproc);
但這裏的時候,有同名的多個功能那麼它會返回一個錯誤。
任何解決方案?
在此先感謝..
對於my tool that reports PostgreSQL schema我使用類似:其結果
SELECT CASE
WHEN pg_proc.proretset
THEN 'setof ' || pg_catalog.format_type(pg_proc.prorettype, NULL)
ELSE pg_catalog.format_type(pg_proc.prorettype, NULL) END,
pg_proc.proargtypes,
pg_proc.proargnames,
pg_proc.prosrc,
pg_proc.proallargtypes,
pg_proc.proargmodes,
pg_language.lanname
FROM pg_catalog.pg_proc
JOIN pg_catalog.pg_namespace ON (pg_proc.pronamespace = pg_namespace.oid)
JOIN pg_catalog.pg_language ON (pg_proc.prolang = pg_language.oid)
WHERE
pg_proc.prorettype <> 'pg_catalog.cstring'::pg_catalog.regtype
AND (pg_proc.proargtypes[0] IS NULL
OR pg_proc.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype)
AND NOT pg_proc.proisagg
AND pg_proc.proname ilike 'MY_FUNCTION_NAME'
AND pg_namespace.nspname = 'public'
AND pg_catalog.pg_function_is_visible(pg_proc.oid);
見第2和第3列。
它的值爲:'proargtypes'爲''和'proargnames'爲'' –
您使用什麼工具查看結果?在'psql'和'pgAdmin'中,我看到了一個函數:「1043」;「{nr0}」。有'{nr0}'是唯一參數的名稱,'1043'是類型。然後我選擇'pg_catalog.format_type('1043',NULL)'來查看1043是否意味着「字符變化」。 –
我正在使用'SQuirrel SQL Client'來查詢數據庫。 在我的功能中,有更多不止一個參數傳遞,但在你的只有一個參數,那麼這將有所不同? –