我目前堅持將表中的三個字段連接成單個字符串。這三個字段具有不同的數據類型。Db2中的DataType轉換
Select
CASE COALESCE(CHAR_COLUMN,'XXX') WHEN 'XXX'
THEN 'CHAR_COLUMN is null'
else 'CHAR_COLUMN='''||CHAR_COLUMN||'''' END
||' and '||
CASE COALESCE(DT_COLUMN,TIMESTAMP('1980-01-01-00.00.00'))
WHEN TIMESTAMP('1980-01-01-00.00.00') THEN 'DT_COLUMN is null'
else 'DT_COLUMN='''||DT_COLUMN||'''' END
||' and '||
CASE COALESCE(NUM_COLUMN,111) WHEN 111
THEN 'NUM_COLUMN is null'
else 'NUM_COLUMN='''||NUM_COLUMN||'''' END
from
S_DATATABLE
這個作品在DB2/AIX64 9.1.7
完全正常,但不是在DB2 z/OS 10.1.5
。
錯誤
時當日期欄分別跑
SQL0171N The data type, length or value of the argument for the parameter in position "2" of routine "||" is incorrect. Parameter name: "||". SQLSTATE=42815
請建議需要爲這個DB2版本做什麼樣的變化對於數字列
An unexpected token ",111" was found following ",111". Expected tokens may include: "CONCAT ||/MICROSECONDS MICROSECOND SECONDS SECOND MINUTES". SQLSTATE=42601
分開跑。提前致謝。
你確定這兩個系統上的陳述完全相同嗎?錯誤消息表明語法上的差異,例如缺少撇號。 – WarrenT