建表语句如下:
CREATE TABLE student
(sno NUMBER(6) CONSTRAINT s1 PRIMARY KEY,
sname CHAR(6) CONSTRAINT s2 NOT NULL,
sex CHAR(2) CONSTRAINT s3 CHECK(sex IN('男','女')),
birthday DATE CONSTRAINT s4 CHECK(birthday between to_date('1900-12-31','yyyy-mm-dd') and to_date('2100-12-31','yyyy-mm-dd')),
dno CHAR(3) CONSTRAINT s5 REFERENCES dep(dno))
TABLESPACE "SYSTEM"
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
STORAGE(INITIAL 12K
NEXT 12K
PCTINCREASE 50
MINEXTENTS 1
MAXEXTENTS 249);
本想插入如下数据
insert into student
values(95001,'李勇','男',1987-12-15,'CS');
执行后报错:
values(95001,'李勇','男',1987-12-15,'CS')
*
ERROR 位于第 2 行:
ORA-00932: 数据类型不一致但执行如下语句
insert into student
values(95001,'李勇','男',SYSDATE,'CS');
显示
已创建 1 行。
在企业管理控制台下查看表的数据也发现,DATE格式不是预期的年-月-日格式,似乎约束没起作用。新学orcle,期盼热心人指导。谢谢。
CREATE TABLE student
(sno NUMBER(6) CONSTRAINT s1 PRIMARY KEY,
sname CHAR(6) CONSTRAINT s2 NOT NULL,
sex CHAR(2) CONSTRAINT s3 CHECK(sex IN('男','女')),
birthday DATE CONSTRAINT s4 CHECK(birthday between to_date('1900-12-31','yyyy-mm-dd') and to_date('2100-12-31','yyyy-mm-dd')),
dno CHAR(3) CONSTRAINT s5 REFERENCES dep(dno))
TABLESPACE "SYSTEM"
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
STORAGE(INITIAL 12K
NEXT 12K
PCTINCREASE 50
MINEXTENTS 1
MAXEXTENTS 249);
本想插入如下数据
insert into student
values(95001,'李勇','男',1987-12-15,'CS');
执行后报错:
values(95001,'李勇','男',1987-12-15,'CS')
*
ERROR 位于第 2 行:
ORA-00932: 数据类型不一致但执行如下语句
insert into student
values(95001,'李勇','男',SYSDATE,'CS');
显示
已创建 1 行。
在企业管理控制台下查看表的数据也发现,DATE格式不是预期的年-月-日格式,似乎约束没起作用。新学orcle,期盼热心人指导。谢谢。
values(95001, '李勇', '男',to_date(1987-12-15,'yyyy-mm-dd'), 'CS');
还请问一下
1。 查询结果为:
SNO SNAME SE BIRTHDAY DNO
---------- ------ -- ---------- ---
95001 李勇 男 15-12月-87 CS
在表编辑器中BIRTHDAY是15-十二月-1987 12:00:00 AM,而查询结果却是15-12月-87?
2。是否可以直接插入XXXX-XX-XX格式的日期达成效果,当然表定义中birthday最好是日期类型的?