INSERT INTO customers(customer_id,first_name,last_name,dob,phone)
VALUES (1,'John','Brown','01-JAN-65','800-555-1211')提示错误:
在行 1 上开始执行命令时出错:
INSERT INTO customers(customer_id,first_name,last_name,dob,phone)
VALUES (1,'John','Brown','01-JAN-65','800-555-1211')
错误报告:
SQL 错误: ORA-01843: 无效的月份
01843. 00000 - "not a valid month"把月份“JAN”换成“01”还是一样的错误,求高手们解答,谢谢啦
那么你在插入数据的时候,应该先将字符串类型转换为date类型的
如:to_date(01-JAN-65','DD-MON-YY')
INSERT INTO CUSTOMERS
(CUSTOMER_ID, FIRST_NAME, LAST_NAME, DOB, PHONE)
VALUES
(1, 'John', 'Brown', TO_DATE('01-JAN-65', 'dd-mon-yy'), '800-555-1211')
在行 1 上开始执行命令时出错:
INSERT INTO CUSTOMERS
(CUSTOMER_ID, FIRST_NAME, LAST_NAME, DOB, PHONE)
VALUES
(1, 'John', 'Brown', TO_DATE('01-JAN-65', 'dd-mon-yy'), '800-555-1211')
错误报告:
SQL 错误: ORA-01843: 无效的月份
01843. 00000 - "not a valid month"
*Cause:
*Action:
(CUSTOMER_ID, FIRST_NAME, LAST_NAME, DOB, PHONE)
VALUES
(1, 'John', 'Brown', '1965-01-01','800-555-1211')
--先跑个这条语句
--先跑个这条语句
能用了,谢谢啦,能不能解释一下为什么要先运行这句代码呀?ALTER SESSION SET nls_language=american;
这说到底还是安装Oracle客户端的设置问题。出入数据时候注意就好了。
如果在一个新的会话内,‘11-11-2011’应该可以直接插入,可以隐式转换成日期格式。
但建议还是插入日期时,都使用to_date()。
这些都是小问题啦,找些资料看看,很容易理解的