2017-09-12 11 views
-1

内TO_CHAR私は特定の日付形式であるinfo.make_dateを必要とするので、私はPL/SQL - DECODE

Select DECODE(info.make_date, NULL,'SELECT ALL',to_char(info.make_date, 'MM/DD/YYYY')) as "listItemKey" 
TO_CHAR使用しかし、私は

Select DECODE(info.make_date, NULL,'SELECT ALL',info.make_date) as "listItemKey" 

に機能をTO_CHARかけることなく、正常に動作しますDECODE文を持っています

しかし、私がこれを行うとき、返す必要のあるデータの代わりにUnexpected '<'をJSONとして取得します。 info.make_dateをここに必要な形式に設定できない理由はありますか?

+0

奇妙です。別の日付形式を試してみるか、 'to_char(sysdate、 'MM/DD/YYYY')'を試してみてください。 – Dessma

+0

このコードはうまく動作しますが、私は個人的にはここでは代わりに 'NVL'を書式上の理由で使用します。残りのコード(JSONへの変換など)を投稿してください。 –

+0

@Dessma私のmake_dateタイプは、コード内の他の場所のcharに設定されていましたが、sysdateでテストした後でしか認識できませんでした。ありがとう! –

答えて

1

私は以下のような選択肢があると思います。これが動作すれば私に知らせてください。

私は既存の DECODEto_charを使用する前に、日付をキャストすると言うでしょうが
select case when info.make_date is null then 'SELECT ALL' 
     else TO_CHAR (info.make_date, 'MM/DD/YYYY') 
     end as "listItemKey" 

TO_CHAR (to_date(info.make_date, 'MM/DD/YYYY'), 'MM/DD/YYYY') 
+0

私は愚かな間違いを犯しました。私のinfo.make_dateは文字列に設定されていました。助けてくれてありがとう –