为什么要把游标数据存到数组

如果一个游标频繁调用,那么就会频繁访问数据库,导致效率慢。

如果把调用一次游标后,把数据存到数组,效率会高。

postgresql与oracle  转换成array的区别

关于postgresql的文章比较难找到,通常都是先找到oracle再猜测postgresql代码怎么写

oracle的实现,可以参考

:

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 参数替换 游标_解决postgresql和oracle如何把游标cursor数据存到数组array相关推荐

  1. postgres 禁止远程登录_解决postgresql无法远程访问的情况

    今天刚入手这个数据库玩玩,发现无法通过IP去访问数据库,后面查询原因为,该数据库默认只能通过本地连接,也就是回环地址(127.0.0.1) 解决方案: 1.修改安装目录下的data\pg_hba.co ...

  2. java实现将A表数据转移到B表_解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表(merge into)...

    作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表: 语法: MERGE INTO [your table-name] [rename your table h ...

  3. postgresql 参数替换 游标_postgresql动态游标使用案例

    CREATE or REPLACE FUNCTION insert_p_date() RETURNS text as ``` $$ DECLARE sql_string text; sdate tim ...

  4. postgresql 连接超时_解决PostgreSQL 执行超时的情况

    使用背景 最近在使用PostgreSQL的时候,在执行一些数据库事务的时候,先后出现了statement timetout 和idle-in-transaction timeout的问题,导致数据库操 ...

  5. ios请求头解决参数中文乱码_解决请求参数的中文乱码问题(get、post)

    2018-11-28 在web请求与响应中,会遇到乱码问题,比如填写表单数据时,难免会输入中文,姓名.公司名称等.由于HTML设置了浏览器在传递请求参数时,采用的编码方式是UTF-8,但在解码时采用的 ...

  6. bootstrap 数据加载中提示_解决Quartz定时器中查询懒加载数据no session的问题

    作者:下一秒升华 出自:CSDN 原文:blog.csdn.net/u013815546/article/details/53032445 相信大家在web开发过程中一定遇到过一种情况,Class班级 ...

  7. oracle xe 乱码_解决关于:Oracle数据库 插入数据中文乱码 显示问号???

    ABP(现代ASP.NET样板开发框架)系列之19.ABP应用层--审计日志 点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之19.ABP应用层--审计日志 AB ...

  8. oracle查询游标行数,如何查找Oracle PL/SQL游标中的记录数量?

    NB:我刚才重读你的问题..你要失败的.如果只有1个记录.. 我会后在某一时刻有新的更新.. ,让我们开始在这里.. 从的Oracle®数据库PL/SQL用户指南和参考 10g第2版(10.2) 型号 ...

  9. Oracle 原理:游标,显示游标、隐式游标、参照游标

    Oracle 游标有三种:显示游标.隐式游标.参照游标. fetch...bulk collect into select 语句会把结果集全部返回给用户,而无法对结果集中的每行数据进行单独的操作.因此 ...

最新文章

  1. IE6-IE11兼容性问题列表及解决办法
  2. python多版本控制操作方法
  3. windowXP 任务计划无法启动 错误代码:0X80041315
  4. word表格转换成html,delphi将word表格转换成html_取得Word 表格中的数据
  5. MySQL 成薪资跳板了?
  6. python交互式怎么保存_如何保存Python交互式会话?
  7. 史上最简单MySQL教程详解(基础篇)之SQL语句以及预留关键字介绍
  8. Azure角色管理技巧和工具
  9. ortools解决tsp_ortools系列:后话
  10. CSS规则重要性以及继承、层叠
  11. 《那些年啊,那些事——一个程序员的奋斗史》——06
  12. Dubbo+Zookeeper视频教程
  13. 深圳市商务局2022年度中央资金(跨境电子商务企业市场开拓扶持事项)申报指南
  14. 消息中间件MQ与RabbitMQ面试题
  15. 综述(十)北京在安全测试示范区上的政策与成果数据分析
  16. 中国电信CTWAP和CTNET已经融合
  17. 带刺玫瑰特别美?OLED屏幕画面美但眼睛会累
  18. 【LVGL应用开发--基于STM32】第1章 初识LVGL
  19. appinventor认识
  20. 基于HTML+CSS+JavaScript仿瓜子二手车官网【学生网页设计作业源码】

热门文章

  1. JAVA接口继承、抽象类等
  2. PHP 输入/输出流
  3. Silverlight 游戏开发小技巧:技能冷却效果1(Cooldown)
  4. C++ delete的三种面貌
  5. C++ mutable 的用法
  6. sklearn.preprocessing.Imputer
  7. javascript getBoundingClientRect()获取元素四个边相对于窗口或文档的位置
  8. SheetForm.cs
  9. BZOJ1052:[HAOI2007]覆盖问题
  10. C#利用SharpZipLib解压或压缩文件夹实例操作