精华内容
下载资源
问答
  • PostgreSQL 函数

    千次阅读 2018-05-29 10:00:31
    PostgreSQL 函数函数的定义使用函数,可以极大的提高用户对数据库的管理效率。函数表示输入参数表示一个具有特定关系的值。一、数学函数绝对值函数、三角函数、对数函数、随机函数等,当有错误产生时,数学函数会...

    PostgreSQL 函数

    函数的定义

    使用函数,可以极大的提高用户对数据库的管理效率。函数表示输入参数表示一个具有特定关系的值。

    一、数学函数

    绝对值函数、三角函数、对数函数、随机函数等,当有错误产生时,数学函数会返回null值。

    二、函数

    1、常用数值函数

    2、常用字符串函数




    3、日期和时间函数




    三、条件判断函数

    条件判断函数亦称为控制流程函数,根据满足条件的不同,执行相应的流程。






    四、系统信息函数

    1、获取版本号


    2、获取用户函数


    五、加密函数

    1、加密函数MD5(str)


    2、加密函数ENCODE(str , pswd_str)

    ENCODE(str , pswd_str)使用pswd_str 作为加密编码,来加密str 。常见的加密编码包括:base64 、 hex 、escape。

    加密查询长度



    业务需求需要对一些敏感数据进行加密处理

    3、解密函数

    DECODE(crypt_str ,pswd_str)使用pswd_str作为密码,解密加密字符串crypt_str ,crypt_str 是由ENCODE()返回的字符串


    六、改变数据类型

    CAST(x,AS_type) 函数将一个类型的值转换为另一个类型的值;

        

    七、问题

    展开全文
  • POSTGreSql函数

    2017-09-27 14:02:39
    POSTGreSql,PostGist空间查询分析函数的相关示例,非常适合学习。来源于平时工作的总结。如果需要请下载,如果有不正确的地方,还望指正!
  • postgresql函数

    2016-05-31 10:13:27
    PostgreSQL函数也被称为存储过程,可执行操作,通常会作为一些查询和往返在一个单一的数据库内的函数函数允许数据库重新使用其他应用程序可以直接与您的存储过程而不是一个中间层或复制代码。 可以创建在所...
     
    

    来自:http://www.yiibai.com/html/postgresql/2013/080784.html

    PostgreSQL的函数也被称为存储过程,可执行操作,通常会作为一些查询和往返在一个单一的数据库内的函数。函数允许数据库重新使用其他应用程序可以直接与您的存储过程而不是一个中间层或复制代码。

    可以创建在所选择的语言,如SQL,PL/pgSQL,C,Python等功能 yiibai.com

    语法

    创建一个函数的基本语法如下:

    CREATE [OR REPLACE] FUNCTION function_name (arguments) 
    RETURNS return_datatype AS $variable_name$
      DECLARE
        declaration;
        [...]
      BEGIN
        < function_body >
        [...]
        RETURN { variable_name | value }
      END; LANGUAGE plpgsql;  

    Where,

    • function-name specifies the name of the function. www.yiibai.com

    • [OR REPLACE] option allows modifying an existing function.

    • The function must contain a return statement.

    • RETURN clause specifies that data type you are going to return from the function. Thereturn_datatype can be a base, composite, or domain type, or can reference the type of a table column.

    • function-body contains the executable part.

    • The AS keyword is used for creating a standalone function.

    • plpgsql is the name of the language that the function is implemented in. Here we use this option for PostgreSQL, it Can be SQL, C, internal, or the name of a user-defined procedural language. For backward compatibility, the name can be enclosed by single quotes.

    语法

    The following example illustrates creating and calling a standalone function. This function returns the total number of records in the COMPANY table. We will use the COMPANY table, which has following records:

    testdb# select * from COMPANY;
     id | name  | age | address   | salary
    ----+-------+-----+-----------+--------
      1 | Paul  |  32 | California|  20000
      2 | Allen |  25 | Texas     |  15000
      3 | Teddy |  23 | Norway    |  20000
      4 | Mark  |  25 | Rich-Mond |  65000
      5 | David |  27 | Texas     |  85000
      6 | Kim   |  22 | South-Hall|  45000
      7 | James |  24 | Houston   |  10000
    (7 rows)
      

    Function totalRecords() is as follows:

    CREATE OR REPLACE FUNCTION totalRecords ()
    RETURNS integer AS $total$
    declare
    	total integer;
    BEGIN
       SELECT count(*) into total FROM COMPANY;
       RETURN total;
    END;
    $total$ LANGUAGE plpgsql; www.yiibai.com 

    When the above query is executed the result would be:

    testdb# CREATE FUNCTION
      

    Now let's execute a call to this function and check the records in the COMPANY table

    testdb=# select totalRecords();  

    When the above query is executed the result would be: www.yiibai.com

     totalrecords
    --------------
                7
    (1 row) www
    展开全文
  • postgresql 函数开发

    2019-01-23 15:32:54
    postgresql 函数开发 最近也是看了很多国内,国外的pl/...作者在postgresql函数开发三年,之前涉及sql server,mysql,oracle的存储过程开发。转向postgresql函数也是工作需要。刚开始就满世界找资料,当时找了 ...

    postgresql 函数开发

    最近也是看了很多国内,国外的pl/sql函数开发文档,都是很零散且片面的,故在此写篇比较全面一点的pl/sql函数开发文章,供大家借鉴学习,也顺道推广下postgresql。
    作者我在postgresql函数开发三年,之前涉及sql server,mysql,oracle的存储过程开发。转向postgresql函数也是工作需要。刚开始就满世界找资料,看了资料都说得挺基础的。
    这篇先介绍两类函数开发,一种是需实时查询,数据变化很快的函数开发,一种是不需实时,汇总型的查询,数据不要求快速响应。

    第一类函数写法如:

    在这里插入图片描述
    在这里插入图片描述

    第二类函数写法如:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 忙活半天,才发现原因是PostgreSQL函数(存储过程)有自动COMMIT或ROLLBACK的特殊规定。 二、问题重现 以下用示例表和示例代码来重现该问题。 create table t1 ( ID int not null primary key, name varchar...

    一、综述

    今天在PostgreSQL遇到一个奇怪的现象,简而言之,是想用函数(存储过程)实现插入记录,整个过程没报错但事后却没找到记录!忙活半天,才发现原因是PostgreSQL函数(存储过程)有自动COMMIT或ROLLBACK的特殊规定。

    二、问题重现

    以下用示例表和示例代码来重现该问题。

    create table t1 
    (
      ID int not null primary key,
      name varchar(20)
    );

    涉及的存储过程是从oracle那边直接拷贝过来后再修改过的,原先是动态SQL,这里简化为静态SQL。注意其中有个commit;根据PostgreSQL的要求,对事务增加begin...exception...end,否则会有错误或警告。示例脚本代码为:

     

    create or replace function p1(pid int, pname varchar)
    returns void as $$
    begin
      begin             --pg对事务的要求
      insert into t1 values(pid, pname);
      commit;
      exception      
      when others then
      end;              --pg对事务的要求
    end;
    $$ language plpgsql;

     

    依次执行脚本创建存储过程、调用存储过程、查找示例表,结果如下: 

     

    postgres=# \i test1.sql
    CREATE FUNCTION
    postgres=# select p1(1, 'abc');
     p1
    ----
    (1 行记录)
    
    postgres=# select * from t1;
      id | name
      ----+------
      (0 行记录)
     

    要插入的记录并不存在!惊喜不惊喜?意外不意外?

    三、原因分析及解决

    仔细查找有关资料,发现有这么一个解释:

    Functions and trigger procedures are always executed within a transaction established by an outer 
    query — they cannot start or commit that transaction, since there would be no context for them to 
    execute in. However, a block containing an EXCEPTION clause effectively forms a subtransaction that 
    can be rolled back without affecting the outer transaction.

    其意义是PostgreSQL的函数总是默认为一个事务,总是自动Commit或Rollback。

    其实一开始没增加begin...exception...end时,PostgreSQL报错“can't begin/end transaction  in pl/pgsql”,已经隐含了这层信息。只是脑子里还是延续Oracle的习惯,而画蛇添足了。

    于是,修改存储过程的脚本,按最简单的法子来:

     

    create or replace function p2(pid int, pname varchar)
    returns void as $$
    begin
      insert into t1 values(pid, pname);
    end;
    $$ language plpgsql;

     

    为验证此说法是否正确,在再次创建函数、调用函数后,增加一个回滚(事先已设置AutoCommit为false)的操作,然后再查询记录:

    postgres=# \i test1.sql
    CREATE FUNCTION
    postgres=# select p2(1, 'abc');
     p2
    ----
    (1 行记录)
    
    postgres=# rollback;
    WARNING:  there is no transaction in progress
    ROLLBACK
    postgres=# select * from t1;
     id | name
    ----+------
      1 | abc
    (1 行记录)

     

    可见,这次记录已成功插入,且外部的回滚操作对其无影响。

    四、总结

    Oracle是可以在存储过程或函数里指定Commit/Rollback的,如果没有,则外部调用者可以回滚存储过程内部的操作。

    但在PostgreSQL,函数(存储过程)总是自动将其所有操作当作一个事务,外部无法对内部操作提交或回滚。

    问题好像已经解决,但留有一个疑问没弄明白,为什么PostgreSQL允许在函数体中加关于事务的begin...exception...end,但结果却好像是没提交?

    展开全文
  • PostgreSQL 函数 自定义 PostgreSQL 函数和扩展的存储库。 diff_tables 一个简单的 plpgsql 函数,它接受两个表名(通过regclass类型),构建一个比较它们的内容的查询,运行它,并返回一组具有不同行的类似 diff ...
  • PostgreSQL:六. PostgreSQL函数

    千次阅读 2020-04-30 09:24:14
    PostgreSQL函数 6.1 数学函数 1、绝对值函数ABS(x)和返回圆周率函数PI() 【例6.1】求2,-3.3和-33的绝对值,输入语句如下: SELECT ABS(2), ABS(-3.3), ABS(-33); 【例6.2】返回圆周率值,输入语句如下: SELECT ...
  • PostgreSQL 函数学习

    千次阅读 2019-04-14 09:58:00
    存储过程,在PostgreSQL 这个数据库中,被称为PostgreSQL函数,所以你可以把他看成就是我们平常使用的函数,只是定义和调用的时候,语法的不同。 基本语法: GREATE [OR REPLACE] FUNCTION functi...
  • PostgreSQl函数部分阅读笔记 关于函数部分在PostgreSQL中的实现问题的解释 聚集函数
  • postgres-deno:Deno的PostgreSQL扩展:在PostgreSQL函数和触发器中运行Typescript
  • PostgreSQL 函数 for循环使用

    千次阅读 2020-10-31 11:10:15
    Postgresql 函数例子 本业务是实现将之前已经使用的数据和现在的数据关联起来,需要写个sql函数初始化数据,数据库使用的是postgresql 具体代码 create or replace function insert_user_roles() returns void ...
  • 将Swift带到后端的后端一个小型教程可以在这里找到:PL / Swift-Swift中的PostgreSQL函数。 PL / Swift尽管有名称,但它(当前)不是像PL / Python这样的语言扩展,它使您可以直接在SQL中嵌入Swift代码。 相反,它...
  • 自己整理的PostgreSQL 函数

    千次阅读 2016-08-12 15:23:47
    自己整理的PostgreSQL 函数
  • PostgreSQL函数编辑器-Sublime插件 插件可帮助您直接使用postgresql数据库功能并运行测试。 警告:如果您遇到问题或有建议,请。 特征 从指定的数据库创建所有数据库功能的本地临时副本。 将函数保存到带有输出的...
  • PostgreSQL函数也称为PostgreSQL存储过程。 PostgreSQL函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制流程等)。 它有助于您执行通常在数据库中的单个函数中...
  • postgresql函数结合for循环使用

    千次阅读 2019-09-06 09:25:57
    Postgresql 函数例子) 本业务是实现将之前已经使用的数据和现在的数据关联起来,需要写个sql函数初始化数据,数据库使用的是postgresql 具体代码 create or replace function insert_enterprise_city_level() ...
  • 今天检查大家写的postgresql函数时,发现有的家伙不遵守postgresql关于函数中的赋值运算表示方式:variable := value注意的是,是:=表示赋值运算,而不是单独一个等号。这一点和delphi相似?另外,postgresql中...
  • PostgreSQL函数里调用函数(SETOF + RETURN QUERY) 1、函数如下: CREATE OR REPLACE FUNCTION public.get_version() ...
  • postgresql 函数之游标、更新数据 根据人员信息更新另一个表中的部门新 CREATE OR REPLACE FUNCTION "public"."updatedeptcode"() RETURNS "pg_catalog"."varchar" AS $BODY$ DECLARE unbound_refcursor ref...
  • postgresql函数笔记

    2020-04-09 13:40:05
    资源合集: cast函数 COALESCE函数 判断字符串包含的几种方法 连接符 " || " case when in 与 exists 聚合函数string_agg与array_agg regexp_split_to_table、regexp_split_...postgresql学习手册:函数和操作符 ...
  • 使用C语言写PostgreSQL函数

    千次阅读 2016-03-22 19:02:45
    引言: 使用C语言写PostgreSQL中的函数可以很方便...本文一步一步教你如何使用C语言写PostgreSQL函数: 1. 先根据一个简单函数的生成一个动态库,看PostgreSQL能否使用 源文件为cfunc.c,内容如下: #includ
  • PostgreSQL函数(存储过程)----笔记 PostgreSQL函数也称为 PostgreSQL存储过程。 PostgreSQL 函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制...
  • PostgreSQL 函数稳定性状态

    千次阅读 2015-10-28 09:14:35
    PostgreSQL 函数在定义的时候有三个稳定性状态可选: IMMUTABLE | STABLE | VOLATILE 分别代表,非常稳定,稳定,不稳定。 不稳定,函数可以修改数据库的数据,输入同样的参数可以返回不同的结果,同...
  • postgresql 数据库提取到 OSRM 规范化文件中的工具,以及访问 OSRM Server 的 postgresql 函数。 阅读以下每个文件夹中各自的 README.md 文件,以获取有关如何使用每个文件的更多信息。 pgr2osrm 该目录包含一...
  • postgresql函数示例

    2019-07-03 16:04:10
    CREATE OR REPLACE FUNCTION "public"."f_customer_rel_manager"() RETURNS "pg_catalog"."void" AS $BODY$ DECLARE uid int8; c_record record; resu VARCHAR; res int;u_manager_id VARCHAR;...
  • PostgreSQL 函数的过程 CREATE [ OR REPLACE ] FUNCTION name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] ) [ RETURNS rettype | RETURNS TABLE ( column_name column_...
  • 以下主要介绍PostgreSQL函数/存储过程返回数据集,或者也叫结果集的示例。  背景: PostgreSQL里面没有存储过程,只有函数,其他数据库里的这两个对象在PG里都叫函数。 函数由函数头,体和语言所组成,函数头...
  • PostgreSQL 函数 pg_affected_rows — 返回受影响的记录数目pg_cancel_query — 取消异步查询pg_client_encoding — 取得客户端编码方式pg_close — 关闭一个 PostgreSQL 连接,用法pg_close();pg_connect — ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,859
精华内容 17,543
关键字:

postgresql函数