2016-04-12 19 views
0

İlk ile geçersiz sayı, ben eklemek çalışıyorum tablo bu tablodur:ORA-01722: to_char damgası

CREATE TABLE Message 
(
    MessageID varchar2(80) NOT NULL, 
    Message varchar2(500), 
    SendDate date NOT NULL,  
    SendID varchar2(50) NOT NULL, 
    Request_ID varchar2(50) NOT NULL, 
    PRIMARY KEY (MessageID) 
); 

ve benim insert sorgusu bu (Bahar, mybatis) 'dir:

INSERT INTO message (
     messageid 
    , message 
    , senddate 
    , sendId 
    , request_Id 
)VALUES(
     #{sendidjbuser} + TO_CHAR(systimestamp, 'yyyymmddhh24missff3') 
    , #{message} 
    , sysdate 
    , #{sendidjbuser} 
    , #{requestIdjbuser} 
) 

ben cmd bu denenmiş ve yukarıdaki sorguda bu kısmı sorun oldu: sadece TO_CHA takmadan

INSERT INTO message (messageId) VALUES('sendId' + TO_CHAR(systimestamp, 'yyyymmddmissff3')) 

Ben Oracle 11. sadece çalıştı R (systimestamp, 'yyyymmddmissff3') bunu bir dizeye eklemeden ve işe yaradı. Ama çalışmak için o kısmına ihtiyacım var. Bunu yapmak için doğru bir yolu var mı?

+4

Yanlışlıkla, belgelerinde '||' – MrSimpleMind

+1

[Birleştirme işleci] (http://docs.oracle.com/cd/E11882_01/server.112/e41084/operators003.htm) kullanın. –

cevap

1

Oracle'da, lütfen || veya dizeleri birleştirmek için CONCAT() işlevi. '+' Kullanıyorsunuz, dolayısıyla hatayı alıyorsunuz.

+0

oh Tanrım neyin var? Neyse teşekkürler. iç çekmek.. – SunSun