Oracle 甲骨文时间戳

Oracle 甲骨文时间戳,oracle,timestamp,Oracle,Timestamp,我有一张桌子: Cust_data ( "SEQ_NO" NUMBER, "CUST_ID" VARCHAR2, "SERVER_SID" VARCHAR2, "CUST_NAME" VARCHAR2, "EVENT_TYM" TIMESTAMP, "CUST_DOB" DATE, "ADD_TYMSTMP" TIMESTAMP, "STATUS" VARCHAR2 ) 我正在尝试插入

我有一张桌子:

    Cust_data 
   (    
    "SEQ_NO" NUMBER, 
    "CUST_ID" VARCHAR2, 
    "SERVER_SID" VARCHAR2, 
    "CUST_NAME" VARCHAR2, 
    "EVENT_TYM" TIMESTAMP, 
    "CUST_DOB" DATE, 
    "ADD_TYMSTMP" TIMESTAMP, 
    "STATUS" VARCHAR2
   ) 
我正在尝试插入格式的时间戳:

2014-01-25T04:05:26.669Z
我已尝试使用此更新语句:

update CUST_DATA set 
ADD_TYMSTMP = TO_TIMESTAMP('2014-01-25T04:05:26.669Z','yyyy/mm/dd'T'hh24:mi:ss'Z'')
where CUST_ID='chan012'
上面的update语句给出了一个错误:

ORA-00907: missing right parenthesis
这句话非常好用

update CUST_DATA set 
ADD_TYMSTMP = TO_TIMESTAMP('2014-01-25 04:05:26.669','yyyy-mm-dd hh24:mi:ss.ff')
where CUST_ID='chan012'
但问题是我需要将这种格式放入表中

2014-01-25T04:05:26.669Z
我有一个csv文件以上面提到的时间戳格式加载到这个表中,它没有被加载。 所以我试着插入一张唱片,它也不起作用。
任何人都可以帮忙吗,提前谢谢。

您需要在固定字符周围使用双引号,而不是单引号:

update CUST_DATA set 
ADD_TYMSTMP = TO_TIMESTAMP('2014-01-25T04:05:26.669Z',
  'yyyy-mm-dd"T"hh24:mi:ss.ff3"Z"')
where CUST_ID='chan012';
这是,;格式型号列表中显示的固定值为
“text”

在您的版本中,模型末尾的两个单引号,
…'Z“”)…
,将被视为转义引号,这意味着您的引号数量不均匀-您的字符串未终止,即使已终止,也将是错误的。
ORA-00907
是一个相当普遍的错误,并不总是直接有用。这通常只是意味着你犯了一些相当基本的错误,而Oracle已经到了解析步骤的末尾,却没有弄清楚到底是什么。当然,有时候你真的错过了一个结束括号,但是当你看到这个时,你通常必须看得更深一点

你说你正在加载这些数据;如果您正在使用SQL*Loader,那么您可以:

在11gR2中测试,并在文件中使用您的固定值,这将提供:

select add_tymstmp,
  to_char(add_tymstmp, 'yyyy-mm-dd"T"hh24:mi:ss.ff3"Z"') as display
from cust_data;

ADD_TYMSTMP                  DISPLAY                      
---------------------------- ------------------------------
25-JAN-14 04.05.26.669000000 2014-01-25T04:05:26.669Z       

“获取失败”-既不是有效的Oracle错误消息,也不是可接受的错误description@a_horse_with_no_name:这是我得到的错误ORA-00907:缺少右括号我已经尝试过了,这是有效的,但是,在DB中,我想存储字符('T'和'Z')以及时间戳。u给出的解决方案效果很好,但它删除了字符:(@Akhilendra-您不能存储额外的字符。
时间戳
列有一个内部表示,它与您如何显示值无关。如果您希望以相同的方式显示它,您可以在选择时使用相同的格式模型,使用
to_char()
。请不要试图将其存储为字符串,将其视为时间戳,直到您将其显示在某个位置。我更新了示例以显示您的格式-默认情况下,当我选择时,我会得到完全不同的显示,但我希望应用格式模型可以满足您的需要。谢谢Alex。这很有帮助。
select add_tymstmp,
  to_char(add_tymstmp, 'yyyy-mm-dd"T"hh24:mi:ss.ff3"Z"') as display
from cust_data;

ADD_TYMSTMP                  DISPLAY                      
---------------------------- ------------------------------
25-JAN-14 04.05.26.669000000 2014-01-25T04:05:26.669Z