- 浏览: 824979 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (530)
- Java编程 (64)
- C/C++/D (6)
- .Net/C# (9)
- Ruby (12)
- JavaScript (77)
- XML (1)
- JSON (1)
- Ajax (17)
- ExtJs (81)
- YUI (1)
- JQuery (7)
- DWR (1)
- HTML (7)
- CSS (7)
- Database (6)
- PowerDesigner (23)
- DB2 (2)
- Oracle (57)
- MS SQL Server (8)
- MySQL (6)
- JSP/Servlet/JSTL/TagLib (3)
- Spring (1)
- Hibernate (0)
- iText (0)
- Struts (0)
- Struts2 (0)
- iReport (0)
- FreeMarker (0)
- HttpClient (1)
- POI (6)
- FckEditor (15)
- Eclipse / MyEclipse (10)
- IntelliJ IDEA (0)
- NetBeans (0)
- Tomcat (11)
- WebLogic (1)
- Jboss (3)
- jetty (4)
- IIS (2)
- CVS/VSS (1)
- FTP (1)
- Windows/DOS (6)
- Linux/Unix (0)
- 软件建模 UML (0)
- Design Pattern & Thinking In Programming (10)
- 数据结构与算法 (12)
- 软件项目管理 (9)
- 行业应用解决方案 (3)
- 电脑软件与故障解决 (13)
- 编程语言 (1)
- 十万个为什么 (3)
- JBPM (2)
- sysbase (2)
- JDBC (8)
- Ant (2)
- Case-计算机辅助软件工程 (1)
- WebService (4)
- 浏览器 (1)
最新评论
-
gaoqiangjava:
同一楼,还请大手帮解决
JAVA读取word文件 -
hyl523:
// 判断数组中的第一个值是否未定义,如果未定义,便定义为空对 ...
javascript面向对象之二 命名空间 -
ping12132200:
ping12132200 写道我抱着个错不是因为:body标签 ...
extjs在IE报对象不支持此属性或方法 -
ping12132200:
我抱着个错不是因为:body标签内的第一个元素不能为文本tex ...
extjs在IE报对象不支持此属性或方法 -
fireinjava:
呀,不错,转走了,谢谢啦~
利用OpenOffice将word转换成PDF
lvarchar在9.4版本之后才可以用带指定长度的方式,如lvarchar(3000),不带长度则默认是2048字节,最大长度是32,739字节。所以对于9.4之前的版本,不能用带长度的表达式,数据库会报语法错误。
另,据说informix没有补丁的说法,实际就是升级到高版本,不知道这样的说法是否正确。
在informix中有如下几种对字符串操作的类型:char,varchar,nchar,nvarchar,lvarchar,text
char,varchar,nchar,nvarchar类型的作用同Oracle一样,不同的只在于长度,关于他们的详细解释,参见我的上一篇文章--oracle的字符串类型详解:http://hi.baidu.com/bjn_wuming/blog/item/ee3463ef2666eee3ce1b3eb6.html
以下为使用winSQL测试的结果:
1、char的最大长度网上普遍说是254,而经过测试后发现却是32767,图"informix中char长度测试1"是在32767长度下建表的正确返回,而"informix中char长度测试2"则是使用32768长度下建表出现了错误提示。
ps:请不用质疑我的测试结果,如果你发现你的informix中的char是254的话,有可能是你的新版本对此做了修正。
informix中char长度测试1,char(32767)运行正常
informix中char长度测试2,char(32768)报错
2、varchar的最大长度为255(在oracle中的长度为4000)。图"informix中varchar长度测试1"和"informix中varchar长度测试2"为的测试结果。
informix中varchar长度测试1,varchar(255)执行正常
informix中varchar长度测试2,varchar(256)执行报错
3、nchar与char相同,最大长度32767,多数情况下1个字符占2字节。
4、nvarchar的最大字符数是255个字符,但是由于它也是在多数情况下1个字符占2字节,所以它的最大长度应该是255*2,也就是510字节。
5、lvarchar比较特殊,通常用于存放比较长但又不会特别长的字符串,其最大长度是32739字节(看好不是32767),如果缺省长度则默认是2048,测试结果见下图,虽然经过上面的测试发现它还不如char和nchar高,但我个人在这一点上更相信网上的普遍说法。char之所以能被测出达到32767那么长的字符,很可能与winsql或者是版本bug有关,并且char和nchar是定长类型。lvarchar是可变长类型,所以在需要定下较长的字段时,无论从稳定性和空间的优化上都应该选择lvarchar
informix中lvarchar长度测试1,lvarchar(32739)执行正常
informix中lvarchar长度测试2,lvarchar(32740)执行报错
6、text与oracle中的long类型一样,用来应对超长字符串的类型,最大长度为2GB,貌似唯一的不同就是long是被oracle官方声明不推荐的类型,而text是informix中常用的处理大字段的类型
以下是特别说明:
1、在定义长度时,括号中的是字符数,而不是字节数,这一点与oracle相同(比如nvarchar中一个字符占2个字节,所以将nvarchar(255)的字段的一个数据填满的话,实际会占510字节的存储空间+1个字节的预留空间)
2、在informix的一个表中对以上字符串类型定义的总长度不能超过32767(不包括对大字段处理的text类型),而且遇到varchar与nvarchar则总长度会再减1,而遇到lvarchar则需要减3,这是因为可变长度的字段需要对其预留一些空间用于可变操作(varchar和nvarchar是1字节,lvarchar是3个字节,不同的原因,我个人推测是由于支持的字符集问题,lvarchar为了支持一些占3个字节的字符集,所以它会留出3个字节的预留空间)。
如下图"特别声明1":建立了一个表叫typetest,其中的2个字段varchar与char的长度为255和32512,因为两个长度相加虽然为32767,但是varchar类型要预留1个字节的可变空间,所以其时间占用长度应该为255+1,所以实际长度是32768,超过了32767的长度限制,所以被报错了。
特别声明1
3、如上面所说varchar的实际长度是定义的上限长度再+1,相对的nvarchar也是会加1的,而char和nchar不会。
4、如图"特别声明2",lvarchar的实际长度为设定的上限长度+3,所以图中2个字段的实际长度为255+32510+3=32768,超过了32767的上限,因而会被报错
特别声明2
5、lvarchar在9.2版本以后才能使用,而在9.4版本以后才可以使用指定长度的方式。
发表评论
-
oracle中怎样查询数据表的哪个字段是主键
2011-03-20 18:17 1441selecttable_name,constraint_nam ... -
ORACLE树查询,startwithconnectbyprior
2011-03-20 18:12 974[url=#author]周 登朋[/url] ([url=m ... -
java.sql.SQLException: ORA-00933: SQL command not properly ended
2010-10-08 19:16 2257java.sql.SQLException: ORA-0093 ... -
Oracle数据显示--横表转纵表
2010-10-06 11:42 11451.建表-- Create table create ta ... -
Oracle学习笔记
2010-07-28 00:30 8601、set linesize 100; 设置长度 2、se ... -
《oracle 9i从入门到精通读书笔记2》
2010-07-26 19:51 1180第二章:PL/SQL基础 2.1 PL/SQL程序结构 ... -
《Oracle9i PL/SQL 从入门到精通读书笔记1》
2010-07-26 19:51 1153Oracle9i PL/SQL 从入门到精通学习笔记 第一章: ... -
Oracle域用户安装
2010-07-05 19:43 1148问题:如果在域中安装Oracle 10G, 在DataB ... -
存储过程无法代替触发器的特殊情况
2010-07-03 13:30 989在这里先解释一下推崇 ... -
oracle的字符串类型详解
2010-07-03 13:29 1606整理一下对于char,characte ... -
Oracle学习笔记
2010-07-01 20:29 7251、set linesize 100; 设置长度 2、se ... -
Oracle数据库函数(单行函数)
2010-07-01 20:28 879Oracle数据库函数(单行函数) Oracle中的函 ... -
oracle日期函数集锦
2010-07-01 20:26 741一、 常用日期数据格式 1.Y或YY或YYY 年的最后一位, ... -
Oracle时间加减
2010-07-01 20:23 1046加法 select sysdate,add_months(s ... -
Oracle中数值的计算
2010-06-30 23:46 1091运算符 含义 · +(加) 加法 · ||(加) ... -
Oracle常见问题处理
2010-06-30 23:46 905一、Oracle的安装目录不能是中文,否则安装不成功。解决:O ... -
Oracle基础练习(三)
2010-06-30 23:45 10101、select 5/2,null*5 from dual, ... -
如何在Oracle中建表格时就指定主键和外键
2010-06-30 23:42 1475创建表的语法-创建表格语法:create table 表 ... -
Oracle触发器中when语句的用法
2010-06-30 23:41 1397案例:scott.emp表的销售员工资只能增加,不能减少 代 ... -
通过银行转账业务体会JAVA与存储过程不同实现方式
2010-06-30 23:40 1158任务:帐户表(帐户号,姓名,余额,锁定)。实现帐号1向帐号2转 ...
相关推荐
informix数据库较为少见,这是网上找到的一份较全的informix函数使用文档,和大多数传统rdbms的sql一直,少部分特有的函数
通过透明网关实现oracle连接informix数据的设置
Oracle与Informix函数比较.doc
(全部是JAVA)jdbc和odbc连接字符串包括,Oracle SQL MySQL DB2 Access Sybase Informix PostgreSQL等等,有很多朋友因为连接字符串的问题,往往都会浪费很多时间。所以我把这些连接字符串都做成了一个Word文档,供...
Informix数据库常用命令详解,介绍informix数据库常用命令
提供informix到oracle数据migration的方案
informix onstat命令详解,适用于informix数据库的处理
此文档详细介绍了oracle数据库迁移工具(omwb)的使用,为把历史数据从informix迁移到oracle的用户提供了少走弯路的途径。
Informix SQL 语句详解,建数据库,建表,查表,修改表,删数据库,表
oracle通过gateway与Informix创建dblink的完全实践过程
informix linux.unix平台下常用字符集转换
Informix SQL语句详解,一本不错书哈
Informix迁移至Oracle数据库的研究.pdf
informix动态服务器错误代码中文详解,informix动态服务器错误代码中文详解
oracle到informix数据库移植研究
这是oracle、db2、informix数据库的数据源配置详细步骤
CREATE DATABASE database_name [WITH LOG IN “pathname”] 创建数据库。 database_name:数据库名称。 “pathname”:事务处理日志文件。 ...创建一database_name.dbs目录,存取权限由GRANT设定,无日志文件就不能...
MS-sql、Oracle、Mysql、Informix数据类型整理。
oracle连接字符串: class:oracle.jdbc.driver.OracleDriver url:"jdbc:oracle:thin:@localhost:1521:jbitdb","epet","epet" sqlserver: class:com.microsoft.sqlserver.jdbc.SQLServerDriver url:"jdbc:sql...
Informix Onstat命令详解,以表格形式详细说明onstat每个命令选项的用法。