[英]Why does converting date to_char() throw ORA-01830 error when placed in a case-then?
我已經使用此代碼很長時間了,它工作正常:
to_char(v_emailRow.first_stamp, 'dd.mm.yyyy')
但是,今天我需要添加以下條件
case when v_cardCode = 'C1' then v_date else to_char(v_emailRow.first_stamp, 'dd.mm.yyyy') end
。
一旦我添加了 case-then 語句,每當需要執行 to_char() 時,它就開始總是拋出ORA-01830: date format picture ends before converting entire input string
錯誤。 如果我刪除 case-then,它會像往常一樣工作,如果我將它添加回來,錯誤會立即返回。
我試過寫一個測試腳本,谷歌搜索,但我找不到問題。 兩種情況下都轉換了相同的值,為什么其中一種有效而另一種拋出錯誤?
當 v_cardCode = 'C1' 然后 v_date else to_char(v_emailRow.first_stamp, 'dd.mm.yyyy')
每當需要執行 to_char() 時,它總是開始拋出 ORA-01830: date format picture ends before conversion整個輸入字符串錯誤
v_date
,正如變量名所暗示的,它是一個DATE
數據類型,而應用TO_CHAR
將 date 轉換為一個STRING
。 因此,具有兩種不同的數據類型會導致錯誤。
在您的 SQL 中嘗試以下CASE
:
case
when v_cardCode = 'C1'
then to_char(v_date, 'dd.mm.yyyy')
else to_char(v_emailRow.first_stamp, 'dd.mm.yyyy')
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.