如何通过SQL查询获取AWS Redshift存储过程的输出参数元数据
在AWS Redshift中查询存储过程输出参数元数据的SQL语句
方法1:使用SQL标准的information_schema视图
这是最直观的方式,符合ANSI SQL标准,可读性强:
SELECT specific_name AS procedure_name, parameter_name, ordinal_position, parameter_mode, data_type FROM information_schema.parameters WHERE specific_schema = 'public' -- 替换为存储过程所在的Schema名称 AND specific_name = 'your_target_procedure' -- 替换为你的存储过程名 AND parameter_mode IN ('OUT', 'INOUT') -- 仅筛选输出/输入输出参数 ORDER BY ordinal_position;
方法2:使用Redshift兼容的PostgreSQL系统表
如果需要更底层的元数据信息,可以直接查询PostgreSQL兼容的系统表:
SELECT p.proname AS procedure_name, pa.parname AS parameter_name, pa.parn AS ordinal_position, CASE pa.parmode WHEN 'o' THEN 'OUT' WHEN 'b' THEN 'INOUT' END AS parameter_mode, format_type(pa.paratype, NULL) AS data_type FROM pg_proc p JOIN pg_namespace n ON p.pronamespace = n.oid JOIN pg_param pa ON p.oid = pa.parproc WHERE n.nspname = 'public' -- 替换为Schema名称 AND p.proname = 'your_target_procedure' -- 替换为存储过程名 AND pa.parmode IN ('o', 'b') -- 'o'=OUT, 'b'=INOUT ORDER BY pa.parn;
说明
specific_schema/n.nspname:填写存储过程所在的Schema,默认是publicspecific_name/p.proname:填写你要查询的存储过程名称parameter_mode:OUT表示纯输出参数,INOUT表示同时支持输入输出的参数
内容的提问来源于stack exchange,提问作者Dario
相关产品推荐
相关产品推荐

