簡體   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