重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
两种方法:
创新互联公司专业为企业提供泸县网站建设、泸县做网站、泸县网站设计、泸县网站制作等企业网站建设、网页设计与制作、泸县企业网站模板建站服务,10年泸县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
方法一:查询pg_proc:
osdba=# select prosrc from pg_proc where proname='get_username';
prosrc
--------------------------------------------------------
declare
ret text;
begin
SELECT name into ret from tang01 where id=userid;
return ret;
end;
(1 row)
方法二:调用pg_catalog.pg_get_functiondef函数:
osdba=# select pg_get_functiondef('get_username'::regproc);
pg_get_functiondef
----------------------------------------------------------------
CREATE OR REPLACE FUNCTION public.get_username(userid integer)
RETURNS text
LANGUAGE plpgsql
AS $function$
declare
ret text;
begin
SELECT name into ret from tang01 where id=userid;
return ret;
end;
$function$
最近在写postgres的函数,整理下常用语法备忘
regexp_split_to_table 字符串分割为表格
regexp_split_to_array 字符串分割为数组
定义内部变量
执行动态sql,并传入参数
执行动态sql,取出结果
打印变量
字符串拼接
在postgreSQL中用select语句就可以调用函数了,包括自定义函数:
select * from your_function(param1, param2, ) s;
如果你不需要函数的返回值,也可以用perform语句来调用:
perform your_function(param1, param2, ..);
以下答案来源于Navicat中文网站,如果需要Navicat软件的话,可以到海淘正版专业软件网站麦软下载
点击 Navicat 主界面上的其他-语言,打开语言对象列表。注意:PostgreSQL 8.0 或以上版本支持“注释”选项卡。
Navicat for PostgreSQL
Navicat for PostgreSQL 语言常规属性:
拥有者:语言的拥有者,支持 PostgreSQL 8.3 或以上版本。
操作符的模式和操作符:以前注册的函数名被调用来运行过程语言函数。过程语言的调用操作符用已编译的语言写,例如 C与版本 1 调用转换。在 PostgreSQL 注册为一个没有引数的函数,返回 language_handler 类型,占位符类型只是用来定义函数为调用操作符。
验证符的模式和验证符:当在语言中新建函数时以前注册的函数名被调用来验证新函数。如果没有指定验证符函数,新函数创建时将不会检查。验证符函数必须有类型 oid 的引数,这是要创建的函数 OID,通常返回void。
验证符函数通常会检查函数主体的语法正确性,但它也可以看函数的其他属性。例如,如果语言不可以处理某些引数类型。要发出错误信号,验证符函数应使用 ereport() 函数,函数的返回值将被忽略。
信任:指定语言的调用操作符是安全的,也就是说,它不提供未经授权的用户任何功能来绕过访问限制。当注册语言时,如果忽略该关键字,只有 PostgreSQL 超级用户权限的用户可以使用该语言创建新函数。
有的。PostgreSQL内建有分析函数,PostgreSQL称之为Window Function,有如下这些:
row_number()
rank()
dense_rank()
percent_rank()
cume_dist()
ntile(num_buckets integer)
lag(value any [, offset integer [, default any ]])
lead(value any [, offset integer [, default any ]])
first_value(value any)
last_value(value any)
nth_value(value any, nth integer)
具体说明参看PostgreSQL说明文件中Funcstions Operates下的Winow Functions。
ABORT -- abort the current transaction
ALTER DATABASE -- change a database
ALTER GROUP -- add users to a group or remove users from a group
ALTER TABLE -- change the definition of a table
ALTER TRIGGER -- change the definition of a trigger
ALTER USER -- change a database user account
ANALYZE -- collect statistics about a database
BEGIN -- start a transaction block
CHECKPOINT -- force a transaction log checkpoint
CLOSE -- close a cursor
CLUSTER -- cluster a table according to an index
COMMENT -- define or change the comment of an object
COMMIT -- commit the current transaction
COPY -- copy data between files and tables
CREATE AGGREGATE -- define a new aggregate function
CREATE CAST -- define a user-defined cast
CREATE CONSTRAINT TRIGGER -- define a new constraint trigger
CREATE CONVERSION -- define a user-defined encoding conversion
CREATE DATABASE -- create a new database
CREATE DOMAIN -- define a new domain
CREATE FUNCTION -- define a new function
CREATE GROUP -- define a new user group
CREATE INDEX -- define a new index
CREATE LANGUAGE -- define a new procedural language
CREATE OPERATOR -- define a new operator
CREATE OPERATOR CLASS -- define a new operator class for indexes
CREATE RULE -- define a new rewrite rule
CREATE SCHEMA -- define a new schema
CREATE SEQUENCE -- define a new sequence generator
CREATE TABLE -- define a new table
CREATE TABLE AS -- create a new table from the results of a query
CREATE TRIGGER -- define a new trigger
CREATE TYPE -- define a new data type
CREATE USER -- define a new database user account
CREATE VIEW -- define a new view
DEALLOCATE -- remove a prepared query
DECLARE -- define a cursor
DELETE -- delete rows of a table
DROP AGGREGATE -- remove a user-defined aggregate function
DROP CAST -- remove a user-defined cast
DROP CONVERSION -- remove a user-defined conversion
DROP DATABASE -- remove a database
DROP DOMAIN -- remove a user-defined domain
DROP FUNCTION -- remove a user-defined function
DROP GROUP -- remove a user group
DROP INDEX -- remove an index
DROP LANGUAGE -- remove a user-defined procedural language
DROP OPERATOR -- remove a user-defined operator
DROP OPERATOR CLASS -- remove a user-defined operator class
DROP RULE -- remove a rewrite rule
DROP SCHEMA -- remove a schema
DROP SEQUENCE -- remove a sequence
DROP TABLE -- remove a table
DROP TRIGGER -- remove a trigger
DROP TYPE -- remove a user-defined data type
DROP USER -- remove a database user account
DROP VIEW -- remove a view
END -- commit the current transaction
EXECUTE -- execute a prepared query
EXPLAIN -- show the execution plan of a statement
FETCH -- retrieve rows from a table using a cursor
GRANT -- define access privileges
INSERT -- create new rows in a table
LISTEN -- listen for a notification
LOAD -- load or reload a shared library file
LOCK -- explicitly lock a table
MOVE -- position a cursor on a specified row of a table
NOTIFY -- generate a notification
PREPARE -- create a prepared query
REINDEX -- rebuild corrupted indexes
RESET -- restore the value of a run-time parameter to a default value
REVOKE -- remove access privileges
ROLLBACK -- abort the current transaction
SELECT -- retrieve rows from a table or view
SELECT INTO -- create a new table from the results of a query
SET -- change a run-time parameter
SET CONSTRAINTS -- set the constraint mode of the current transaction
SET SESSION AUTHORIZATION -- set the session user identifier and the current user identifier of the current session
SET TRANSACTION -- set the characteristics of the current transaction
SHOW -- show the value of a run-time parameter
START TRANSACTION -- start a transaction block
TRUNCATE -- empty a table
UNLISTEN -- stop listening for a notification
UPDATE -- update rows of a table
VACUUM -- garbage-collect and optionally analyze a database
--是指这个命令列表吗?