PostgreSQL Oracle 兼容性之存储过程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL Oracle 兼容性之存储过程相关的知识,希望对你有一定的参考价值。
参考技术A在oracle中,函数和存储过程是经常使用到的,并且有所区别;而postgresql中函数和存储过程都是相同定义的。
1.定义:定义存储过程的关键字为procedure。
2.创建存储过程
例:
(无参数)
(有参有返)
总结 :
1.创建存储过程的关键字为procedure。
2.传参列表中的参数可以用in,out,in out修饰,参数类型一定不能写大小。列表中可以有多个输入输出参数。
3.存储过程中定义的参数列表不需要用declare声明,声明参数类型时需要写大小的一定要带上大小。
4.as可以用is替换。
5.调用带输出参数的过程必须要声明变量来接收输出参数值。
6.执行存储过程有两种方式,一种是使用execute,另一种是用begin和end包住。
1.定义:定义函数的关键字为function。
2.创建函数
总结 :
1.定义函数的关键字为function 。
2.必须有返回值,且声明返回值类型时不需要加大小。
3.函数中定义的参数列表不需要用declare声明,声明参数类型时需要写大小的一定要带上大小。
4.as可以用is替换。
5.执行存储过程有两种方式,一种是使用select,另一种是用begin和end包住。
不同点:
1.存储过程定义关键字用procedure,函数定义用function。
2.存储过程中不能用return返回值,但函数中可以,而且函数中必须有return子句。
3.执行方式略有不同,存储过程的执行方式有两种(1.使用execute2.使用begin和end),函数除了存储过程的两种方式外,还可以当做表达式使用,例如放在select中(select f1() form dual;)。
postgresql则将函数和存储过程合为一体,不再明确区分存储过程与函数。
1.定义:定义函数(存储过程 )的关键字为function。
2.创建
例:
1.必须有有returns(注意是returns不是return)子句,无返回值时returns viod
2.执行时,有返回值用select,无返回值时用perform
3.必须指定语言LANGUAGE
PostgreSQL兼容性之oracle的rowid(APP)
目录
文档用途
oracle中的rowid伪列,有很重要的应用场景,但是PostgreSQL中没有该伪列,本文档介绍PostgreSQL如何兼容实现oracle中的rowid功能。
详细信息
oracle中的rowid
什么是rowid?
rowid是数据的详细物理地址,通过rowid,oracle可以快速的定位某行具体数据的位置。
创建测试表
create table test(id number,name varchar2(10)); |
插入测试数据
insert into test values(0,'orcl'); insert into test valurs(1,'orcl'); insert into test values(2,'orcl'); insert into test values(3,'orcl'); |
查看表内容
select rowid,id,name from test; ROWID ID NAME ------------------ ---------- --------------- AAAV5DAAOAAAACWAAA 0 orcl AAAV5DAAOAAAACWAAB 1 orcl AAAV5DAAOAAAACWAAC 3 orcl AAAV5DAAOAAAACWAAD 2 orcl |
rowid的结构
更多详细信息请登录【瀚高技术支持平台】查看瀚高技术支持平台
以上是关于PostgreSQL Oracle 兼容性之存储过程的主要内容,如果未能解决你的问题,请参考以下文章