1、Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。
使用:
create table TEST_TD
(
ID NUMBER(2),
SEX VARCHAR(5)
);
建立表后,发现sex字段的类型是VARCHAR2而不是VARCHAR,难道会自动将VARCHAR转换VARCHAR2?
2、Oracle表字段设置为允许NULL,有一列值为空,查询时:SELECT * FROM TABLE WHERE field1 is null;可以执行,但SELECT * FROM TABLE WHERE field1="";不能执行,请解释下?
NULL的查询条件要写成where col is null
""的查询条件要写成where col=""
主要是看你的系统的定义中有没有对""和<NULL>有没有特别的定义
难道oracle中NULL与""不同?
varchar2类型的话,用法为varchar2(数字)。
解释:
varchar就是“字符串”,varchar2(20)就是本字符串的最大长度二20个字节。
当前varchar2支持的最大长度是4000个字节。
字母和数字是占两个字节,中文的话是4个字节。那么varchar2(20)可以是10个数字
字母的组合或者可以是5个汉字。