- 浏览: 844241 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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 1523selecttable_name,constraint_nam ... -
ORACLE树查询,startwithconnectbyprior
2011-03-20 18:12 1003[url=#author]周 登朋[/url] ([url=m ... -
java.sql.SQLException: ORA-00933: SQL command not properly ended
2010-10-08 19:16 2298java.sql.SQLException: ORA-0093 ... -
Oracle数据显示--横表转纵表
2010-10-06 11:42 11741.建表-- Create table create ta ... -
Oracle学习笔记
2010-07-28 00:30 8861、set linesize 100; 设置长度 2、se ... -
《oracle 9i从入门到精通读书笔记2》
2010-07-26 19:51 1207第二章:PL/SQL基础 2.1 PL/SQL程序结构 ... -
《Oracle9i PL/SQL 从入门到精通读书笔记1》
2010-07-26 19:51 1189Oracle9i PL/SQL 从入门到精通学习笔记 第一章: ... -
Oracle域用户安装
2010-07-05 19:43 1186问题:如果在域中安装Oracle 10G, 在DataB ... -
存储过程无法代替触发器的特殊情况
2010-07-03 13:30 1026在这里先解释一下推崇 ... -
oracle的字符串类型详解
2010-07-03 13:29 1674整理一下对于char,characte ... -
Oracle学习笔记
2010-07-01 20:29 7551、set linesize 100; 设置长度 2、se ... -
Oracle数据库函数(单行函数)
2010-07-01 20:28 906Oracle数据库函数(单行函数) Oracle中的函 ... -
oracle日期函数集锦
2010-07-01 20:26 774一、 常用日期数据格式 1.Y或YY或YYY 年的最后一位, ... -
Oracle时间加减
2010-07-01 20:23 1085加法 select sysdate,add_months(s ... -
Oracle中数值的计算
2010-06-30 23:46 1130运算符 含义 · +(加) 加法 · ||(加) ... -
Oracle常见问题处理
2010-06-30 23:46 939一、Oracle的安装目录不能是中文,否则安装不成功。解决:O ... -
Oracle基础练习(三)
2010-06-30 23:45 10491、select 5/2,null*5 from dual, ... -
如何在Oracle中建表格时就指定主键和外键
2010-06-30 23:42 1510创建表的语法-创建表格语法:create table 表 ... -
Oracle触发器中when语句的用法
2010-06-30 23:41 1439案例:scott.emp表的销售员工资只能增加,不能减少 代 ... -
通过银行转账业务体会JAVA与存储过程不同实现方式
2010-06-30 23:40 1191任务:帐户表(帐户号,姓名,余额,锁定)。实现帐号1向帐号2转 ...
相关推荐
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...
### JDBC连接各种数据库字符串大全详解 #### 一、Oracle数据库(Thin模式) 在Java中使用JDBC连接Oracle数据库时,通常采用的是thin模式。这种方式直接通过JDBC驱动与Oracle数据库进行交互,不需要额外的中间层...
下面将详细讲解SQL SERVER、Oracle、DB2、Sybase以及Informix这五个常见数据库系统的字段类型。 1. SQL SERVER: SQL SERVER是一款由微软公司开发的关系型数据库管理系统,它提供了丰富的数据类型。例如: - INT...
### Java连接数据库字符串详解 #### 一、JDBC概述与加载驱动 在Java开发中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类...
本篇文章详细介绍了不同数据库环境下ADO连接字符串的具体配置方法,涵盖了SQL Server、ACCESS、Oracle、MySQL、Interbase、IBM DB2、Sybase、Informix、Ingres等多种数据库系统,以及Excel、Text文件、Visual FoxPro...
- 示例连接字符串:`jdbc:informix-sqli://IP:port/dbname:INFORMIXSERVER=Servername;newlocale=zh_cn,zh_cn;newcodeset=gbk,8859-1,819` - `IP:port`:INFORMIX服务器的IP地址和端口号。 - `dbname`:要连接的...
### JDBC连接数据库各种数据库参数详解 #### 一、Oracle8/8i/9i数据库(thin模式) 在Java中通过JDBC访问Oracle数据库时,通常采用thin驱动方式。thin驱动是一种纯Java驱动,无需依赖任何非Java代码即可完成与...
- **注意事项**:需要特别注意字符串的转义问题。 - **不同之处**:与 Oracle 方法相比,ANSI 方法提供了更多的标准性和兼容性。 - **处理步骤**:与 Oracle 方法类似,但具体的语法和关键字略有不同。 #### 七...
#### 五、JDBC类型详解 下面详细介绍几种常见的JDBC类型及其与SQL类型和Java类型的对应关系: 1. **CHAR** - **定义**:固定长度的小字符串。 - **对应SQL类型**:SQL-92标准中的CHAR类型。 - **Java类型**:...
- **参数类型识别**:每个动态参数都会被测试为数字、单引号字符串、双引号字符串或带括号的字符串,以确定有效的注入语法。 - **特定参数测试**:用户可以选择仅对特定参数进行测试,例如GET、POST或Cookie参数。 ...
- 字符串连接:使用 `||` 运算符连接字符串。 ```sql SELECT first_name || ' ' || last_name AS full_name FROM s_emp; ``` - **使用别名:** - 为列命名别名可以增强查询结果的可读性。 ```sql SELECT ...
在Java应用程序中,与各种类型的数据库进行交互时,需要使用到特定的驱动程序以及正确的连接字符串。本文将详细介绍不同数据库的`driverClass`与`jdbcUrl`,帮助开发者更好地理解并配置数据库连接。 #### 一、MySQL...
- **连接字符串**:`jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;user=testuser;password=testpassword`。 - **用户名与密码**:直接在URL中指定。 - **代码示例**: ```java Class.for...
在检索结果时,Sqlmap 使用一种机制,在这种机制中,所有条目都被转换为字符串类型,并在NULL值的情况下用空格字符替换。这样做是为了防止出现任何错误状态(例如,将空值与字符串值连接起来),并简化数据检索过程...
Java Web数据库连接池代码详解 Java Web开发中,数据库连接池是非常重要的一部分。连接池可以减少数据库连接的频率,...在实际开发中,我们需要根据具体的数据库类型和连接方式来选择合适的JDBC驱动程序和连接字符串。
- **连接字符串**: ```java String url = "jdbc:oracle:thin:@localhost:1521:orcl"; // orcl 为数据库实例名 String user = "test"; String password = "test"; Connection conn = DriverManager.get...
- **连接字符串**:`jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;user=testuser;password=testpassword` - `123.45.67.89`:服务器地址 - `1533`:监听端口 - `myDB`:数据库名 - `my...
- **连接字符串:** `jdbc:informix-sqli://[host]:[port]/[database_name]:INFORMIXSERVER=[server_name]` - `[host]`:数据库服务器地址。 - `[port]`:数据库监听端口,默认为1533。 - `[database_name]`:...
本篇文章将详细介绍如何使用Java连接并操作多种类型的数据库,包括Oracle、DB2、SQL Server、Sybase、Informix、MySQL以及PostgreSQL。 #### 二、基础知识介绍 在深入讲解之前,我们需要了解一些关于Java数据库...