2016-04-12 6 views
0

まず、私は挿入しようとしている表は、この表である:ORA-01722:TO_CHARのタイムスタンプと、無効な数

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) 
); 

と私のINSERTクエリは、この(春、MyBatisの)です:

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

私はCMD上でこれを試してみました上記のクエリのこの部分が問題だった:

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

私はOracleの11によ、私はちょうどのみTO_CHAを挿入しようとしましたR(systimestamp、 'yyyymmddmissff3')を文字列に追加せずに動作させました。しかし、私は働くにはその部分が必要です。それを行う正しい方法はありますか?

+4

正しく連結されていません。文書内で '||' – MrSimpleMind

+1

[連結演算子](http://docs.oracle.com/cd/E11882_01/server.112/e41084/operators003.htm)を使用してください。 –

答えて

1

Oracleでは、||を使用してください。文字列を連結するにはCONCAT()関数を使用します。あなたは '+'を使用しているので、エラーが発生します。

+0

オハイオ州神何か私に間違っている..とにかく感謝。一口.. – SunSun

関連する問題