postgresql 参数替换 游标_解决postgresql和oracle如何把游标cursor数据存到数组array
为什么要把游标数据存到数组
如果一个游标频繁调用,那么就会频繁访问数据库,导致效率慢。
如果把调用一次游标后,把数据存到数组,效率会高。
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相关推荐
- postgres 禁止远程登录_解决postgresql无法远程访问的情况
今天刚入手这个数据库玩玩,发现无法通过IP去访问数据库,后面查询原因为,该数据库默认只能通过本地连接,也就是回环地址(127.0.0.1) 解决方案: 1.修改安装目录下的data\pg_hba.co ...
- 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 ...
- postgresql 参数替换 游标_postgresql动态游标使用案例
CREATE or REPLACE FUNCTION insert_p_date() RETURNS text as ``` $$ DECLARE sql_string text; sdate tim ...
- postgresql 连接超时_解决PostgreSQL 执行超时的情况
使用背景 最近在使用PostgreSQL的时候,在执行一些数据库事务的时候,先后出现了statement timetout 和idle-in-transaction timeout的问题,导致数据库操 ...
- ios请求头解决参数中文乱码_解决请求参数的中文乱码问题(get、post)
2018-11-28 在web请求与响应中,会遇到乱码问题,比如填写表单数据时,难免会输入中文,姓名.公司名称等.由于HTML设置了浏览器在传递请求参数时,采用的编码方式是UTF-8,但在解码时采用的 ...
- bootstrap 数据加载中提示_解决Quartz定时器中查询懒加载数据no session的问题
作者:下一秒升华 出自:CSDN 原文:blog.csdn.net/u013815546/article/details/53032445 相信大家在web开发过程中一定遇到过一种情况,Class班级 ...
- oracle xe 乱码_解决关于:Oracle数据库 插入数据中文乱码 显示问号???
ABP(现代ASP.NET样板开发框架)系列之19.ABP应用层--审计日志 点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之19.ABP应用层--审计日志 AB ...
- oracle查询游标行数,如何查找Oracle PL/SQL游标中的记录数量?
NB:我刚才重读你的问题..你要失败的.如果只有1个记录.. 我会后在某一时刻有新的更新.. ,让我们开始在这里.. 从的Oracle®数据库PL/SQL用户指南和参考 10g第2版(10.2) 型号 ...
- Oracle 原理:游标,显示游标、隐式游标、参照游标
Oracle 游标有三种:显示游标.隐式游标.参照游标. fetch...bulk collect into select 语句会把结果集全部返回给用户,而无法对结果集中的每行数据进行单独的操作.因此 ...
最新文章
- IE6-IE11兼容性问题列表及解决办法
- python多版本控制操作方法
- windowXP 任务计划无法启动 错误代码:0X80041315
- word表格转换成html,delphi将word表格转换成html_取得Word 表格中的数据
- MySQL 成薪资跳板了?
- python交互式怎么保存_如何保存Python交互式会话?
- 史上最简单MySQL教程详解(基础篇)之SQL语句以及预留关键字介绍
- Azure角色管理技巧和工具
- ortools解决tsp_ortools系列:后话
- CSS规则重要性以及继承、层叠
- 《那些年啊,那些事——一个程序员的奋斗史》——06
- Dubbo+Zookeeper视频教程
- 深圳市商务局2022年度中央资金(跨境电子商务企业市场开拓扶持事项)申报指南
- 消息中间件MQ与RabbitMQ面试题
- 综述(十)北京在安全测试示范区上的政策与成果数据分析
- 中国电信CTWAP和CTNET已经融合
- 带刺玫瑰特别美?OLED屏幕画面美但眼睛会累
- 【LVGL应用开发--基于STM32】第1章 初识LVGL
- appinventor认识
- 基于HTML+CSS+JavaScript仿瓜子二手车官网【学生网页设计作业源码】
热门文章
- JAVA接口继承、抽象类等
- PHP 输入/输出流
- Silverlight 游戏开发小技巧:技能冷却效果1(Cooldown)
- C++ delete的三种面貌
- C++ mutable 的用法
- sklearn.preprocessing.Imputer
- javascript getBoundingClientRect()获取元素四个边相对于窗口或文档的位置
- SheetForm.cs
- BZOJ1052:[HAOI2007]覆盖问题
- C#利用SharpZipLib解压或压缩文件夹实例操作