关键字
pg_get_function_arg_default,regproc
问题描述
如何在金仓数据库KingbaseES中使用pg_get_function_arg_default函数获取函数或者存储过程中相应位置的参数?
解决方案
1)获得函数数据类型:oid、integer
2)将创建对象转换为oid模式
3)select pg_get_function_arg_default('pr1'::regproc,1);
执行结果: pg语法(oracle语法同)
test=# \set SQLTERM /
test=# CREATE OR REPLACE PROCEDURE pr1(a1 int :=10,a2 varchar(50) :='beijing') AS $$
test$# BEGIN
test$# INSERT INTO t1 VALUES(1,'kingbase');
test$# INSERT INTO t1 VALUES(a1,a2);
test$# END;
test$# $$
test-# LANGUAGE PLPGSQL;
test-# /
CREATE PROCEDURE
test=# select pg_get_function_arg_default('pr1'::regproc,1);
test-# /
pg_get_function_arg_default
-----------------------------
10
(1 row)
注:
test=# \df pg_get_function_arg_default
List of functions
Schema | Name | Result data type | Argument data types | Type
----------------+-------------------------------------------+-------------------------+--------------------------------+------
pg_catalog | pg_get_function_arg_default | text | oid, integer | func
'object_name'::regproc 将创建对象转化为oid形式
integer 填写具体数字 对应参数的位置
pg_get_function_arg_default 函数是获取对应位置参数的默认值
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




