Greenplum创建存储过程
1.美图
1.对比
greenplum 的plpgsql
注意:
- greenplum 的plpgsql 与 postgresql 不是完全兼容的。
- plpgsql
不明确界定 函数和存储过程
,“returns void” 表示 存储过程,“return 数据类型” 表示 函数。 - greenplum中的函数分成3种类型: immutable(不可变更的),stable(稳定的),volatile(易变的)。用户自定义的函数若没特别声明,默认是volatile的。
- plpgsql 不使用 commit,rollback 语句,否则运行时会报错,但是子程序可以编译成功即创建成功。
- plpgsql 的动态语句 格式“
execute <varchar变量的sql语句>
”;plpgsql没有execute [into <variable_list>] [using <variable_list>]
的写法,而ORACLE的动态语句有execute immediate [into <variable_list>] [using <variable_list>]
的写法。 - plpgsql 不使用 游标,而是用 for 循环代替。
- 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创建存储过程相关推荐
- mysql创建存储过程权限问题
首先,在mysql存储过程出现的同时,用户权限也增加了5种,其中和存储过程有关的权限有 三种: ALTER ROUTINE 编辑或删除存储过程 CREATE ROUTINE 建立存储过程 EXECUT ...
- mysql jdbc 创建存储过程_mysql JDBC 调用存储过程
与oracle不同,mysql不支持匿名块,如果需要写过程语句,则必需定义存储过程.如果你会oracle的存储过程,那么mysql的存储过程也很简单了. 一.创建存储过程 create procedu ...
- 存储过程和函数——概述||创建存储过程||调用存储过程||查看存储过程||删除存储过程
存储过程和函数概述 存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合, 调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理 ...
- SQL Server创建存储过程
什么是存储过程? q 存储过程(procedure)类似于C语言中的函数 q 用来执行管理任务或应用复杂的业务规则 q 存储过程可以带参数,也可以返回结果 q 存储过程可以包含数据操纵语句.变量.逻辑 ...
- SQL2K数据库开发二十六之存储过程操作创建存储过程(一)
1.可以使用Transact-SQL中的CREATE PROCEDURE语句创建存储过程,使用该语句的语法为: 2.在查询分析器中执行如下语句创建一个存储过程. 3.在企业管理器中创建存储过程的方法为 ...
- mysql无法创建存储过程问题 ERROR 1307 (HY000)
今天由于需要批量生成一些游戏账号,所以打算用存储过程来实现,这样速度会快很多.结果却是用了大量时间,主要原因是mysql server不知道出了点什么问题,运行创建procedure的语句,一直报错. ...
- MySQL创建存储过程(CREATE PROCEDURE)
MySQL 存储过程是一些 SQL 语句的集合,比如有的时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中还需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程.下面 ...
- 2、MySQL创建存储过程(CREATE PROCEDURE)(函数)
MySQL 存储过程是一些 SQL 语句的集合,比如有时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程. 编写存 ...
- SQL Server 创建存储过程
1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name'))drop proc pro_name g ...
最新文章
- Java中的Annotation(2)----Annotation工作原理
- CentOS查看已挂载的文件系统和文件系统信息
- 上海2021高考查成绩查询,2021年上海高考查分入口、查分系统公布!
- boost::hana::make_range用法的测试程序
- 容斥问卷调查反馈——Co-prime,Character Encoding,Tree and Constraints,「2017 山东一轮集训 Day7」逆序对
- php获取html中文本框内容_小猿圈Python入门之批量获取html内body内容的方法
- php报内存溢出,php为什么运行了一段时间后才报内存溢出?
- 95-910-335-源码-FlinkSQL-Calcite-FlinkSQL解析
- silverlight实现图片局部放大效果
- 一个朋友的精彩BLOG
- java 文件读写 中文_java读写中文文件
- android 常用软件包
- css直角线_CSS秘密花园:折角效果
- Google浏览器下载地址
- 债券价格和到期收益率的关系_债券价格与到期收益率之间的关系.PPT
- Pandas数据类型——Series
- 去掉图片按钮外围虚线
- 领悟《信号与系统》之 信号与系统的描述-下节
- 【渝粤题库】广东开放大学 互联网金融 形成性考核
- BigBrother的大数据之旅Day 10 hive(1)