SQL> DESC DRIVERS12
Name Null? Type
----------------------------------------- -------- ----------------------------
D_ID NOT NULL VARCHAR2(30)
DNAME VARCHAR2(30)
AGE VARCHAR2(30)
CITY VARCHAR2(30)
SQL> DESC CARS12
Name Null? Type
----------------------------------------- -------- ----------------------------
C_ID NOT NULL VARCHAR2(30)
COMAPNY VARCHAR2(30)
MODEL VARCHAR2(30)
PURCHASE_DATE DATE
SQL> DESC RESERVES12
Name Null? Type
----------------------------------------- -------- ----------------------------
D_ID NOT NULL VARCHAR2(30)
C_ID NOT NULL VARCHAR2(30)
DAY VARCHAR2(10)
SQL> INSERT INTO DRIVERS12 VALUES(‘&D_ID’,’&DNAME’,’&AGE’,’&CITY’);
Enter value for d_id: D1
Enter value for dname: P.RAI
Enter value for age: 22
Enter value for city: BENARAS
old 2: VALUES('&D_ID','&DNAME','&AGE','&CITY')
new 2: VALUES('D1','P.RAI','22','BENARAS')
1 row created.
SQL> INSERT INTO CARS12
2 VALUES('&C_ID','&COMPANY','&MODEL',TO_DATE('&PURCHASE_DATE','DD/MM/YY'));
Enter value for c_id: C1
Enter value for company: ROYAL ENFIELD
Enter value for model: BULLET350
Enter value for purchase_date: 02/10/16
old 2: VALUES('&C_ID','&COMPANY','&MODEL',TO_DATE('&PURCHASE_DATE','DD/MM/YY')
)
new 2: VALUES('C1','ROYAL ENFIELD','BULLET350',TO_DATE('02/10/16','DD/MM/YY'))
1 row created.
SQL> INSERT INTO RESERVES12
2 VALUES('&D_DI','&C_ID','&DAY');
Enter value for d_di: D1
Enter value for c_id: C1
Enter value for day: MONDAY
old 2: VALUES('&D_DI','&C_ID','&DAY')
new 2: VALUES('D1','C1','MONDAY')
1 row created.
SQL> SELECT C.MODEL,C.COMAPNY,D.CITY
2 FROM DRIVERS12 D, CARS12 C, RESERVES12 R
3 WHERE R.D_ID=D.D_ID AND R.C_ID=C.C_ID AND D.DNAME='M.GUHA' AND C.PURCHASE_DATE>'01/01/15';
*
ERROR at line 3:
ORA-01843: not a valid month
正如你所意识到的,问题出在这一部分:
C.PURCHASE_DATE>'01/01/15'
但你的方法不太对...
这是我的错误,当我输入“02/10/16”作为输入时,它被转换成“02-10-16”格式。
select to_date('01/01/2015', 'DD-MON-RR') from dual;
ORA-01843: not a valid month
C.PURCHASE_DATE>'01-JAN-15'
C.PURCHASE_DATE > TO_DATE('01/01/15', 'DD/MM/RR')
或最好是4位数的年份:
C.PURCHASE_DATE > TO_DATE('01/01/2015', 'DD/MM/YYYY')
对于固定值,还可以使用明确的ANSI日期文本:
C.PURCHASE_DATE > DATE '2015-01-01'
另一个观察是,你正在寻找该日期午夜后的记录;你可能真的想把午夜发生的事情也包括在内:
C.PURCHASE_DATE >= DATE '2015-01-01'
我使用格式插入日期的查询,但我不断得到相同的错误,即。查看oracle文档,我似乎是正确的,这是令人困惑的。希望得到一组额外的眼睛。 和
我在Oracle DB中有一个列,它是数据类型。存储在此列中的典型值类似于。我试图得到所有的记录,其中该专栏有记录后2015年8月1日。 但是,我得到的是。我哪里做错了?
我为PHP更改了OCI8版本,由于该查询不起作用: 我收到这个消息: 消息:oci_execute():ora-01843:不是有效月份 它与Toad一起用于Oracle11。你有什么解决办法吗? 谢谢:)
问题内容: 我使用此查询创建了一个表现 在,当我尝试使用插入一些数据时,遇到此错误。 我做错了什么? 问题答案: 不是日期,而是一个字符串。 当使用session参数的值作为格式掩码将Oracle非日期文字插入到列中时,Oracle将对其进行隐式处理( 注意:这是一个session参数,属于客户端;它不是全局设置 )。如果非日期文字与该格式匹配,则它将起作用(如果不匹配,则它将不起作用)-但是,如
下面是查询
NLS语言是美国语言。