현재 테이블의 3 개 필드를 단일 문자열로 연결하는 중입니다. 이 세 필드는 다른 데이터 유형입니다.Db2의 데이터 형식 변환
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
에서 작동합니다. 이 DB2 버전 수행해야 어떤 변화 제안하십시오 날짜 열 별도로
SQL0171N The data type, length or value of the argument for the parameter in position "2" of routine "||" is incorrect. Parameter name: "||". SQLSTATE=42815
을 실행할 때
오류
때 숫자 열
An unexpected token ",111" was found following ",111". Expected tokens may include: "CONCAT ||/MICROSECONDS MICROSECOND SECONDS SECOND MINUTES". SQLSTATE=42601
에 대해 개별적으로 달렸다. 미리 감사드립니다.
진술은 양쪽 시스템에서 모두 똑같습니까? 오류 메시지는 아포스트로피 누락과 같은 구문의 차이를 나타냅니다. – WarrenT