时间戳值不在oracle中插入某些时间

时间:2014-04-15 21:22:51

标签: sql oracle stored-procedures timestamp

存储过程中的时间戳值为'30-APR-14 12.00.00.000000 AM' 参数列表:

XXXXX(
   P_CAT_PRG_ID     NUMBER,
   P_CATALOG_ID     NUMBER,
   P_PRG_ELE_ID     NUMBER,
   **P_ELE_CLOSE_DATE TIMESTAMP**,
   -- P_UNIT_PACK      NUMBER,
   P_UNIT_PRICE NUMBER,
   P_CURRENCY   VARCHAR2,
   P_CREATED_BY NUMBER
   ) AS

在“Oracle sql developer”中执行此sp时,我将值设为'03/Apr/14'

sp:

中的插入查询
INSERT INTO CCCXXXX
      (CAT_PRG_ID,
       CATALOG_ID,
       PRG_ELE_ID,
       ELE_CLOSE_DATE,
       UNIT_PRICE,
       CURRENCY,
       CREATED_BY,
       CREATED_DATE)
    VALUES
      (0,
       P_CATALOG_ID,
       P_PRG_ELE_ID,
       P_ELE_CLOSE_DATE,
       P_UNIT_PRICE,
       P_CURRENCY,
       P_CREATED_BY,
       SYSTIMESTAMP);

错误:

  

ORA-01830:日期格式图片在转换整个输入字符串之前结束

你能帮帮我吗......

1 个答案:

答案 0 :(得分:0)

插入查询中没有问题,

IF **TO_TIMESTAMP(V_CAT_STATUS, 'DD-MON-RR HH:MI:SS.FF AM')** <= SYSDATE AND V_IS_PS_CREATED = 1 THEN

UPDATE CATALOG_MASTER SET IS_PS_CREATED = 0 WHERE CATALOG_ID=P_CATALOG_ID;

END IF;

粗体字符串是更改。我错过了TO_TIMESTAMP而不是使用TO_DATE