zoukankan      html  css  js  c++  java
  • PostgreSQL PL/Python 和 PL/Postgres 函数互相调用

    create or replace function hello(name text)
        returns text
    as $$
    #    str = name+',你吃饭了吗?';
    #    return 'hello %s !' % str;
        return 'Hello %s!' % name
    $$ language plpythonu;
    
    
    create or replace function hello_invoker(name text)
        returns text
    as $$
    begin
        return public.hello('[plpgsql_invoker_prefix]' || name);
    end;
    $$ language plpgsql;
    
    create or replace function hello_invoker_wrap(name text)
        returns text
    as $$
        pyret = plpy.execute("select hello_invoker('" + name + "[python wrap suffix]') as ret")[0];
        return pyret['ret'];
    $$ language plpythonu;

    testdb=# select * from public.hello_invoker_wrap('吴xx');
                       hello_invoker_wrap                    
    ---------------------------------------------------------
     Hello [plpgsql_invoker_prefix]吴xx[python wrap suffix]!

    plpy.execute返回的结果集为:

     <PLyResult status=5 nrows=1 rows=[{'ret': 'Hello [plpgsql_invoker_prefix]xxx[python wrap suffix]!'}]>
    (1 行记录)

  • 相关阅读:
    Spring
    linux下jdk多版本管理
    linux集群管理
    python多任务处理
    Web框架的引入
    Git命令大全
    Git远程仓库--GitHub
    基于python实现简单web服务器
    python文件读写方式
    几句话搞懂URI、URL、URN之间的关系
  • 原文地址:https://www.cnblogs.com/wucg/p/6473703.html
Copyright © 2011-2022 走看看