为什么要把游标数据存到数组
如果一个游标频繁调用,那么就会频繁访问数据库,导致效率慢。
如果把调用一次游标后,把数据存到数组,效率会高。
postgresql与oracle 转换成array的区别
关于postgresql的文章比较难找到,通常都是先找到oracle再猜测postgresql代码怎么写
oracle的实现,可以参考 :
http://kongbei888.blog.163.com/blog/static/243266132010218104021496
http://dolphin-ygj.iteye.com/blog/440204
PG“基本类型”数组变量定义语法:
array_name integer[];
或者
array_name integer ARRAY[4];
当您看完这文章是否猜测,在PG应该如下定义数组才能存放游标的每条记录
array_name 表%rowtype[]; array_name 游标%rowtype[];
可是调试后,你会发现以上代码编译都不能通过。。。
再回到PG的文档仔细阅读发现:
数组类型可以是任何基本类型或用户定义类型。不支持复合类型和域的数组。
唯一能想到只能是先自定义数据类型了:
第一步:
create type array_type AS ( border_type_cd varchar(20), max_value numeric(9,3), min_value numeric(9,3), ref_code varchar(20) );
第二步:定义变量
declare ref_datas array_type[]; row_num int; cursor_name cursor is select * from table;
第三步:循环游标数据cursor_name,放到数组ref_datas
row_num=0; for rd in cursor_name loop --raise notice '%',row_num; ref_datas[row_num]=row(rd.border_type_cd, rd.max_value, rd.min_value, rd.ref_code); row_num=row_num+1; end loop;
第四步:从数组里拿数据
for i in 0..array_length(ref_datas,1)-1 loop raise notice 'border_type_cd(%)---------max_value(%)----------min_value(%)-------', ref_datas[i].border_type_cd, ref_datas[i].max_value, ref_datas[i].min_value; end loop;
如有不明,请回帖或qq(625514418)联系本人
相关推荐
postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数,postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数
MySQL、PostgreSQL、Oracle比较; 数据库基础知识.ppt
PostgreSQL和Oracle区别,内容很详细哦!!!
个人完整的源码安装步骤,希望对你有用。亲测可用。Centos6.2下,以oracle_fdw驱动连接oracle数据实现读写操作
PostgreSQL & Oracle-备份技术大比拼 PostgreSQL & Oracle-备份技术大比拼 PostgreSQL & Oracle-备份技术大比拼
支持多种数据源的nacos,包括mysql/postgresql/oracle/derby 版本号为1.4.2 对应的各个组件版本 springcloud version: 2020.0.1 springboot version: 2.4.2 springcloudalibaba version: 2021.1 需根据自身情况修改...
将数组和分隔字符串转换为 PostgreSQL 数组表示。 $ npm install pg-array 例子 从逗号分隔的字符串 var pgarray = require('pg-array'); pgarray('node, ruby, rust'); //=> '{node,ruby,rust}' 来自任意分隔的...
PostgreSQL MySQL Oracle数据库设计优化完美攻略
使用游标PostgreSQLCursor的开发是为了利用PostgreSQL游标。 游标允许程序声明游标以运行给定的查询,以将行的“块”返回给应用程序,同时保留完整结果集在数据库中的位置。 这克服了使用find_each和find_in_batches...
oracle移植到postgreSQL
Oracle至PostgreSQL数据库迁移方案.pptx
PostgreSQL與Oracle跟SQL92 Standard的差異
SqlServer,postgresql,mysql ,oracle 以及将数据导入到excel表中所需要的jars
Oracle数据库使用分组函数来对数据进行聚集
PostgreSQL的数组
Sqlserver、Oracle、MySql、PostgreSql、SqlLite常用数据库的对比 1、分页 2、时间函数 3、自增列 4、表名规范 5、字符串连接 6、变量定义 7、其它
项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于PostgreSQL自带数组类型,所以有一个自定义函数的入参就是一个int数组,形如: 代码如下:CREATE OR REPLACE FUNCTION “public”.”func_...
PostgreSQL数据类型,以及与oracle数据类型的对应
介绍mysql,oracle,sqlserver2000,postgresql的连接方法,这些都是我的心得
NULL 博文链接:https://guoranaccp.iteye.com/blog/2093673