![](/img/trans.png)
[英]Why am I getting: [Oracle][ODBC][Ora]ORA-00904: invalid identifier
[英]Why am I getting this error while trying to insert data ORA-00904 “PBIRTHDATE”
如果我在插入具有复杂数据类型的表时遇到语法错误,是否可以纠正我?
这是我的代码:
CREATE TYPE ADDR AS OBJECT (
street VARCHAR2(32),
city VARCHAR2(32),
zip NUMBER(32)
);
CREATE TYPE NAMES AS OBJECT(
firstname VARCHAR2(64),
lastname VARCHAR2(64)
);
CREATE TABLE PERSON(
pid NUMBER(10),
pname NAMES,
paddr ADDR,
pbirthdate DATE
);
INSERT INTO PERSON
VALUES (1, pname('John','Doe'), paddr('None','Test',51050), TO_DATE('33445555', 'MMDDYYY'));
初始化对象类型的实例时,需要指定类型名称 ,而不是列名称。 您还应该始终在INSERT语句中指定目标列。
INSERT INTO PERSON
(pid, pname, paddr, pbirthdate)
VALUES
(1, names('John','Doe'), addr('None','Test',51050), TO_DATE('33445555', 'MMDDYYY'));
^ ^
| here | here
此外,给定格式掩码MMDDYYY'
, 33445555
是无效日期MMDDYYY'
错误消息明确指出:
TO_DATE('33445555', 'MMDDYYY')
当我在本地测试时尝试在查询中使用它时,出现以下错误消息:
ORA-01843:无效月份
您指定的日期无效,因为没有第33个月。 尝试使用有效日期,该错误应消失:
TO_DATE('06242019', 'MMDDYYYY')
TYPE用法和日期存在问题:
INSERT INTO PERSON
VALUES (1, NAMES('John','Doe'), ADDR('None','Test',51050), TO_DATE('06242019', 'MMDDYYYY'));
干杯!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.