Oracle ORA-01861: 文字与格式字符串不匹配
Posted 谦谦均
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle ORA-01861: 文字与格式字符串不匹配相关的知识,希望对你有一定的参考价值。
今天用oracle
创建一个表的时候报错:Oracle ORA-01861: 文字与格式字符串不匹配
。
仔细检查了一下创表语句,并没有发现语法错误:
--创建t_device表
create table t_device(
id number(20),
device_code varchar2(60) default('') not null,--设备编码
device_name varchar2(60) default('') not null,--设备名称
gw_dev_code varchar2(60) default('') not null,--如果是子设备,关联的网关设备编码
product_code varchar2(60) default('') not null,--所属的产品编码
del_flag number(11) default(0) not null,
enable_status number(11) default(0) not null,--0:未启用 1:启用
active_status number(11) default(0) not null,--0:未启用 1:启用
last_online_time date default('1980/01/01 00:00:00') not null,--最近一次上线时间
create_time date default(sysdate) not null,--创建时间
update_time date default(sysdate) not null,--最后更新时间
device_secret varchar2(60) default('') not null,--设备密钥
firmware_version varchar2(60) default('') not null,--固件版本
dev_host varchar2(20) default('') not null,--最近一次上线主机地址
dev_port number(11) default(0) not null,--最近一次上线端口
constraint pk_t_device primary key(id),--设置主键
constraint uq_device_code unique(device_code)--唯一约束
);
百度一下说是时间类型的默认值需要用to_date
函数转换一下,并指定日期格式。如果直接按照字符串方式,或者直接使用to_date('1980/01/01 00:00:00')
,没有指定日期格式,就会导致你插入的时间格式和数据库现有的时间格式不一致。
--创建t_device表
create table t_device(
id number(20),
device_code varchar2(60) default('') not null,--设备编码
device_name varchar2(60) default('') not null,--设备名称
gw_dev_code varchar2(60) default('') not null,--如果是子设备,关联的网关设备编码
product_code varchar2(60) default('') not null,--所属的产品编码
del_flag number(11) default(0) not null,
enable_status number(11) default(0) not null,--0:未启用 1:启用
active_status number(11) default(0) not null,--0:未启用 1:启用
last_online_time date default(to_date('1980/01/01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')) not null,--最近一次上线时间
create_time date default(sysdate) not null,--创建时间
update_time date default(sysdate) not null,--最后更新时间
device_secret varchar2(60) default('') not null,--设备密钥
firmware_version varchar2(60) default('') not null,--固件版本
dev_host varchar2(20) default('') not null,--最近一次上线主机地址
dev_port number(11) default(0) not null,--最近一次上线端口
constraint pk_t_device primary key(id),--设置主键
constraint uq_device_code unique(device_code)--唯一约束
);
修改之后创建成功。
以上是关于Oracle ORA-01861: 文字与格式字符串不匹配的主要内容,如果未能解决你的问题,请参考以下文章
Oracle sql 错误 : ORA-01861: 文字与格式字符串不匹配和日期与字符串互转问题解决
oracle ORA-01861: 文字与格式字符串不匹配 move_date是date类型