1.美图

1.对比

greenplum 的plpgsql
注意:

  1. greenplum 的plpgsql 与 postgresql 不是完全兼容的。
  2. plpgsql 不明确界定 函数和存储过程,“returns void” 表示 存储过程,“return 数据类型” 表示 函数。
  3. greenplum中的函数分成3种类型: immutable(不可变更的),stable(稳定的),volatile(易变的)。用户自定义的函数若没特别声明,默认是volatile的。
  4. plpgsql 不使用 commit,rollback 语句,否则运行时会报错,但是子程序可以编译成功即创建成功。
  5. plpgsql 的动态语句 格式“execute <varchar变量的sql语句>”;plpgsql没有 execute [into <variable_list>] [using <variable_list>] 的写法,而ORACLE的动态语句有 execute immediate [into <variable_list>] [using <variable_list>] 的写法。
  6. plpgsql 不使用 游标,而是用 for 循环代替。
  7. plpgsql 的异常信息 变量: sqlstate,sqlerrm。没有sqlcode。
    DB2 的 异常信息 变量:sqlcode,sqlstate,message_text。
    ORACLE 的 异常信息 变量:sqlcode,sqlerrm。

#1.greenplum数据库准备好

创建表

CREATE TABLE table1 (f1 text,f2 numeric,f3 integer
) distributed by (f1);

添加数据

INSERT INTO table1 values ('test1', 14.1, 3),('test2', 52.5, 2),('test3', 32.22, 6),('test4', 12.1, 4) ;

查看数据

select * from table1;

创建存储过程

有参数格式

create or replace function 存储过程名称(in 参数1 参数类型,in 参数2 参数类型,in 参数3 参数类型 )
returns 返回类型 as $$
begin
存储过程语句
end;
$$ language plpgsql;

例如

create or replace function prc_test(in par1 text,in par2 numeric,in par3 integer)
returns void as $$
begin
insert into table1 values(par1,par2,par3);
end;
$$ language plpgsql;

调用

select prc_test('aa1',1,200);

再次查询语句

查询存储过程:

全局查找,会找到所有的名称相同的,会有一个到多个

select prosrc from pg_proc where proname="存储过程名称"

精准查找


select  t.prosrc from pg_proc t join pg_namespace t2 on t.pronamespace = t2.oid where t.proname = '存储过程名称' and t2.nspname='schema名称'select  t.prosrc from pg_proc t join pg_namespace t2 on t.pronamespace = t2.oid where t.proname = 'prc_test' and t2.nspname='poc_dev'

Greenplum创建存储过程相关推荐

  1. mysql创建存储过程权限问题

    首先,在mysql存储过程出现的同时,用户权限也增加了5种,其中和存储过程有关的权限有 三种: ALTER ROUTINE 编辑或删除存储过程 CREATE ROUTINE 建立存储过程 EXECUT ...

  2. mysql jdbc 创建存储过程_mysql JDBC 调用存储过程

    与oracle不同,mysql不支持匿名块,如果需要写过程语句,则必需定义存储过程.如果你会oracle的存储过程,那么mysql的存储过程也很简单了. 一.创建存储过程 create procedu ...

  3. 存储过程和函数——概述||创建存储过程||调用存储过程||查看存储过程||删除存储过程

    存储过程和函数概述 存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合, 调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理 ...

  4. SQL Server创建存储过程

    什么是存储过程? q 存储过程(procedure)类似于C语言中的函数 q 用来执行管理任务或应用复杂的业务规则 q 存储过程可以带参数,也可以返回结果 q 存储过程可以包含数据操纵语句.变量.逻辑 ...

  5. SQL2K数据库开发二十六之存储过程操作创建存储过程(一)

    1.可以使用Transact-SQL中的CREATE PROCEDURE语句创建存储过程,使用该语句的语法为: 2.在查询分析器中执行如下语句创建一个存储过程. 3.在企业管理器中创建存储过程的方法为 ...

  6. mysql无法创建存储过程问题 ERROR 1307 (HY000)

    今天由于需要批量生成一些游戏账号,所以打算用存储过程来实现,这样速度会快很多.结果却是用了大量时间,主要原因是mysql server不知道出了点什么问题,运行创建procedure的语句,一直报错. ...

  7. MySQL创建存储过程(CREATE PROCEDURE)

    MySQL 存储过程是一些 SQL 语句的集合,比如有的时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中还需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程.下面 ...

  8. 2、MySQL创建存储过程(CREATE PROCEDURE)(函数)

    MySQL 存储过程是一些 SQL 语句的集合,比如有时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程. 编写存 ...

  9. SQL Server 创建存储过程

    1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name'))drop proc pro_name g ...

最新文章

  1. Java中的Annotation(2)----Annotation工作原理
  2. CentOS查看已挂载的文件系统和文件系统信息
  3. 上海2021高考查成绩查询,2021年上海高考查分入口、查分系统公布!
  4. boost::hana::make_range用法的测试程序
  5. 容斥问卷调查反馈——Co-prime,Character Encoding,Tree and Constraints,「2017 山东一轮集训 Day7」逆序对
  6. php获取html中文本框内容_小猿圈Python入门之批量获取html内body内容的方法
  7. php报内存溢出,php为什么运行了一段时间后才报内存溢出?
  8. 95-910-335-源码-FlinkSQL-Calcite-FlinkSQL解析
  9. silverlight实现图片局部放大效果
  10. 一个朋友的精彩BLOG
  11. java 文件读写 中文_java读写中文文件
  12. android 常用软件包
  13. css直角线_CSS秘密花园:折角效果
  14. Google浏览器下载地址
  15. 债券价格和到期收益率的关系_债券价格与到期收益率之间的关系.PPT
  16. Pandas数据类型——Series
  17. 去掉图片按钮外围虚线
  18. 领悟《信号与系统》之 信号与系统的描述-下节
  19. 【渝粤题库】广东开放大学 互联网金融 形成性考核
  20. BigBrother的大数据之旅Day 10 hive(1)

热门文章

  1. 华为Mate 40E预约页面突然上线:或搭载麒麟990E芯片
  2. 京东健康CEO辛利军:感谢刘强东的战略格局和超前眼光
  3. 苹果iPhone 12系列智能手机支持北斗卫星导航定位
  4. 金山办公科创板过会 雷军有望迎来实控第三家上市公司
  5. 百度终于对知乎下手了:将以小程序接入百度App
  6. 黄章谈魅族5G手机计划:明年推出 后年终端才算成熟
  7. 软件安全测试:安全左移的痛点与要点
  8. android去除标题栏
  9. jvm垃圾回收之JVM GC算法
  10. Django登陆以后重定向到请求登陆的页面