通过sql语句获取pg数据库创建的函数详情
时间: 2023-06-06 10:09:10 浏览: 78
可以使用如下的 SQL 语句获取 PostgreSQL 数据库中创建的所有函数详情:
```sql
SELECT
p.proname AS function_name,
n.nspname AS schema_name,
pg_catalog.pg_get_function_identity_arguments(p.oid) AS arguments,
pg_catalog.pg_get_function_result(p.oid) AS return_type,
pg_catalog.pg_get_userbyid(p.proowner) AS function_owner
FROM
pg_catalog.pg_proc p
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
WHERE
n.nspname NOT IN ('pg_catalog', 'information_schema') AND
p.prorettype <> 'pg_catalog.cstring'::pg_catalog.regtype
ORDER BY
1, 2, 3;
```
运行以上 SQL 语句,你可以获得 PostgreSQL 数据库中所有函数的名称、所在的模式、函数参数、返回类型以及创建者。
相关问题
pg数据库sql取模函数
在 PostgreSQL 中,可以使用 % 运算符来进行取模运算。例如,要计算 10 mod 3 的值,可以执行以下 SQL 语句:
```
SELECT 10 % 3;
```
这将返回 1,表示 10 除以 3 的余数为 1。
如果要使用函数来执行取模运算,也可以使用内置的 mod 函数。例如,以下 SQL 语句与上述示例等效:
```
SELECT mod(10, 3);
```
同样,这将返回 1。mod 函数的第一个参数是被除数,第二个参数是除数。
pg 数据库 sql数据库正则表达式查询 全部数字的函数
在PG数据库中,可以使用正则表达式去查询所有数字的函数。使用正则表达式查询数字是非常常见的需求,因为数字可以出现在不同的数据类型中,比如字符串和数字等。
在PG数据库中,我们可以使用正则表达式函数regexp_matches来查询所有数字,其基本语法如下:
SELECT regexp_matches(your_string, '[0-9]+', 'g')
解释:
- your_string是待查询的字符串;
- '[0-9]+'是正则表达式,表示匹配0到9之间的所有数字,"+"表示匹配一次或多次;
- "g"是修饰符,表示全局搜索。
例如,假设我们要查询所有数字,我们可以使用如下SQL语句:
SELECT regexp_matches('abc123def456', '[0-9]+', 'g');
这将返回一个数组,包含所有匹配的数字:
regexp_matches
-------------
{123}
{456}
(2 rows)
通过查询上面的SQL,在PG数据库中,我们可以用正则表达式查询所有数字的函数,即regexp_matches。这个函数是非常有用的,无论我们是要查询一个字符串还是一列数据中的数字,都可以使用它来快速查询。