繁体   English   中英

使用ORACLE-11g在类型为timestamp的数据库中插入包含撇号的数据

[英]Insertion in database of type timestamp and data containing apostrophe using ORACLE-11g

我已经成功地创建了该表,如下所示:

CREATE TABLE TOY_STORE
(
  TOY_STORE_ID NUMBER(3) PRIMARY KEY,
  TOY_STORE_NAME VARCHAR2(30) NOT NULL,
  CITY VARCHAR2(30) DEFAULT 'Delhi',
  PHONENUMBER NUMBER(10) NOT NULL UNIQUE,
  STORE_OPENING_TIME TIMESTAMP,
  STORE_CLOSING_TIME TIMESTAMP
);

ALTER TABLE TOY_STORE ADD CHECK (EXTRACT(HOUR FROM CAST (TO_CHAR (STORE_OPENING_TIME, 'YYYY-MON-DD HH24:MI:SS') AS TIMESTAMP)) > 8 || NULL);

ALTER TABLE TOY_STORE ADD CHECK (EXTRACT(HOUR FROM CAST(TO_CHAR(STORE_CLOSING_TIME, 'YYYY-MON-DD HH24:MI:SS') AS TIMESTAMP)) < 22 || NULL);

现在我要在表中输入数据。 我执行了以下命令(这里的第二个数据是“孩子的洞穴”),

INSERT INTO TOY_STORE VALUES(1, 'Kid''s Cave', 'Delhi', 9912312312, 2014-04-01 09:10:12, 2014-04-01 21:42:05); 

但是它显示了以下错误。

ORA-00917: missing comma

请解释

您需要将日期放入'' 尝试这个:

INSERT INTO TOY_STORE 
VALUES(1, 'Kid''s Cave', 'Delhi', 9912312312, '2014-04-01 09:10:12', '2014-04-01 21:42:05'); 

附带说明:

我建议您使用varchar()存储PhoneNumbers而不是Number数据类型

日期在查询中没有单引号-像这样使用:

'2014-04-01 09:10:12', '2014-04-01 21:42:05'

尝试使用to_date将字符串转换为date

INSERT INTO TOY_STORE 
VALUES (1, 'Kid''s Cave', 'Delhi', 9912312312, 
        to_date('2014-04-01 09:10:12', 'yyyy-mm-dd hh24:mi:ss'),
        to_date('2014-04-01 21:42:05', 'yyyy-mm-dd hh24:mi:ss'));

您还可以使用TIMESTAMP literal

INSERT INTO TOY_STORE 
VALUES (1, 'Kid''s Cave', 'Delhi', 9912312312, 
        TIMESTAMP '2014-04-01 09:10:12',
        TIMESTAMP '2014-04-01 21:42:05');

问题不是' ,这是因为您没有引用日期文字。 Oracle将其解释为几个整数,并且它们之间有运算符,但由于没有逗号分隔它们而失败。

用引号( ' )括起来应该可以:

INSERT INTO TOY_STORE VALUES 
(1, 
 'Kid''s Cave', 
 'Delhi', 
 9912312312, 
 '2014-04-01 09:10:12', 
 '2014-04-01 21:42:05'); 

但这是一个不好的做法,因为它假定格式与数据库的默认日期格式匹配,这会使您的代码易于出错且无法正常运行。 更好的方法是使用明确声明的格式将这些值明确转换为timestamp

INSERT INTO TOY_STORE VALUES 
(1, 
 'Kid''s Cave', 
 'Delhi', 
 9912312312, 
 TO_TIMESTAMP('2014-04-01 09:10:12', 'YYYY-MM-DD HH24:MI:SS'), 
 TO_TIMESTAMP('2014-04-01 21:42:05', 'YYYY-MM-DD HH24:MI:SS')); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM