Oracle之char类型-yellowcong

来源:互联网 发布:oracle数据库防火墙 编辑:程序博客网 时间:2024/06/06 08:37

尽量避免使用Oracle的char类型,即使只有一个字节,也应该使用varchar2类型。

char的缺点主要有两个

1.占用空间大
如果声明一个char(10)的字段,仅仅使用了一个字节,剩余的9个字节也会使用空格补齐。
2.Java中回查不到数据
在下面最常用的JDBC中,查询一个char类型的字段,却查不到任何结果.

占用空间大

create table a (        id char(10)    );create table b (        id varchar2(10)    );insert into a values('test');insert into b values('test');commit;

所占用的空件,varchar2数据类型的比较少

这里写图片描述

JAVA回查不到数据

关于char类型在java中查不到数据,不是一次两次了,这种奇怪的问题,就是应为是char类型的数据,所以导致查询不到,查询的化,需要在SQL中加入oracle中trim,ltrim,rtrim三个函数,就可以解觉char类型查询数据问题,建议不要使用char类型

public class Test {    public static void main(String[] args) throws ClassNotFoundException, SQLException {        Class.forName("oracle.jdbc.OracleDriver");        Connection connection = DriverManager.getConnection("jdbc:oracle:thin:127.0.0.1:1521:orcl", "edmond", "edmond");        PreparedStatement ps = connection.prepareStatement("select id from a where id=?");        ps.setString(1, "test");        ResultSet result = ps.executeQuery();        if (result.next()) {            System.out.println(result.getString(1));        } else {            System.out.println("没有任何记录");        }        result.close();        ps.close();        connection.close();    }}