informix数据库知识积累
一、嵌套查询
informix子查询:嵌套查询
(1)select first 20 * from (select first 40 * from hlrquery_log order by id desc) order by id desc无法执行
上述并不是子查询,而是隐式视图查询。
子查询应该是:
select first 20 * from tablename where col in ( select col1 from tb2 )
informix到了11版才支持隐式视图查询。informix7、8、9、10均不支持这个。
select first 40 * from hlrquery_log where id in ( select first 40 id from hlrquery_log order by id desc);在后面子查询中加了first系统也报不支持这个参数,first关键字不能用在子查询中
(2)上述查询不能执行的解决方法①将嵌套查询的结果存入临时表,再以临时表做查询(没试验过)
select * from example_table into temp t;
select * from t;注意,使用这种方法,必须要用创建表的权限。
②使用informix特有的嵌套查询语法
select * from table(multiset(select * from example_table));这种方法很常用。
二、left join,right join 最后面写的where条件对xxx有效
三、informix中的某数据库temp空间不足,造成无法使用order by查询
场景:系统中某个查询是order by查询,点击“查询”,MyEclipse报错如下:
Hibernate:……(此处是打印的SQL)
2014-11-25 09:39:56 ERROR JDBCExceptionReporter:78 - Cannot write sorted rows.
2014-11-25 09:39:56 ERROR JDBCExceptionReporter:78 - ISAM error: no free disk space for sort
2014-11-25 09:39:56 ERROR BaseAction:76 - java.lang.reflect.InvocationTargetException
……将打印的SQL语句放到informix数据库中执行,报错如下:
(低版本的仅报错:Cannot write sorted rows)
以上错误仅对数据量很大的表有,对于数据量小的表不存在该错误。经验证,以上错误和用户的电脑内存无关,是数据库内存的问题。
select first n * from xxx order by xx;是先把表中所有数据order by,再first,所以当表数据量大时,这个查询很占内存。
出错原因:查询的该表的数据量较大,informix中的某数据库temp空间不足,造成无法使用order by查询
解决办法:设置该数据库,增大informix中该库的temp空间。在改例中,所查表的数据量是35万条,把改表所在库的temp内存增加到2G才可以进行带Where条件的排序查询,不带where的排序查询仍无法使用。
四、date类型
如:
select * from xxx
where xxx and current-to_date(reportTime,'%Y/%m/%d') <'365 00:00:00.000'其中reportTime是varchar类型
待续……
informix数据库知识积累的更多相关文章
- 数据库相关知识积累(sqlserver、oracle、mysql)
数据库相关知识积累(sqlserver.oracle.mysql) 1. sqlserver :断开所有连接: (还原数据库) 1.数据库 分离 2. USE master GO ALTER DAT ...
- Asp.net MVC知识积累
一.知识积累 http://yuangang.cnblogs.com/ 跟蓝狐学mvc教程专题目录:http://www.lanhusoft.com/Article/169.html 依赖注入:htt ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- Vertica 数据库知识汇总篇
Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...
- 为Informix数据库开启事务
1.首先在Informix数据库安装根目录的etc文件夹下找到名为ONCONFIG.on_xxxx的配置文件: 2.打开ONCONFIG.on_xxxx文件,在第409行的位置找到TAPEDEV \\ ...
- WinRT知识积累1之读xml数据
前述:这个知识是在Windows8.1或WP8.1中运用Linq to xml获取一个xml文件里的数据.(网上也很多类似的知识,可以借鉴参考) 平台:windows8.1 metro 或者WP8.1 ...
- 数据库知识整理<八>
联接: 8.1理解简单的单联接: 基本上联接的结果是每个集合的笛卡尔积.例如:两个集合{a,b,c}和{a,b}的笛卡尔积是如下的成对集合:{(a,a),(a,b),(b,a),(b,b),(c,a) ...
- 数据库知识整理<五>
简单的数据查询: 5.1查询的基本结构: Sql语句:select [distinct] (* | column [alias],...) from table [where condition] [ ...
- 数据库知识整理<二>
又继续写的博客,希望自己能坚持每天写博客.分享自己的点滴,对自己成长有帮助.今天下午高强度打了三个小时篮球,小腿都抽筋了.很爽,失落的心情似乎变得开明了一些.想到了一句话:“像SB式的坚持总会有好的收 ...
随机推荐
- iOS App Transprot Security
随着iOS 9和OS X EI Capitan 的发布,苹果官方引入了应用通讯安全模式的概念.简而言之,应用通讯安全模式强制性要求应用需要使用最佳的安全通讯协议,比如TLS 1.2版本和前向保密技术. ...
- PDF XSS
漏洞测试: 下面,我们介绍如何把 JavaScript 嵌入到 PDF 文档之中.我使用的是迅捷 PDF 编辑器未注册版本 1.启动迅捷 PDF 编辑器打开一个 PDF 文件,或者使用“创建 PDF ...
- 【RF库XML测试】Add Element
Name:Add ElementSource:XML <test library>Arguments:[ source | element | index=None | xpath=. ] ...
- setTag,getTage复用
radioButtons = new RadioButton[rgMain.getChildCount()]; //遍历RadioGroupfor (int i = 0; i < radioBu ...
- linux 下 java 链接oracle数据库
import java.sql.*; public class Hello { private final String oracleDriverName = "oracle.jdbc.dr ...
- 《转》Python学习(19)-python函数(二)-关于lambda
转自http://www.cnblogs.com/BeginMan/p/3178103.html 一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称 ...
- 网络编程之HttpClient类(转)
12.2 网络编程之HttpClient类 除了可以使用HttpWebRequest类来实现HTTP网络请求之外,我们还可以使用HttpClient类来实现.对于基本的请求操作,HttpClient类 ...
- Python pyQt4/pyQt5 学习笔记2(状态栏、菜单栏和工具栏)
例子:状态栏.菜单栏和工具栏 import sys from PyQt4 import QtGui class Example(QtGui.QMainWindow): def __init__(sel ...
- libevent安装方法
安装FastDFS之前,先安装libevent工具包,记录一下安装过程 1.检查:ls -al /usr/lib | grep libevent 查看是否已安装,如果已安装且版本低于1.3,则先通过: ...
- filter对数组和对象的过滤
1,对数组的过滤 let arr = ['1', '2', '3'] let b = arr.filter(val => val === '2') console.log(b) // ['2] ...
