본문 바로가기

Dev

ibatis 에서 쿼리에 CDATA 를 넣는 목적?

	
		
		SELECT TOP 1 ISNULL(BARCODE,'-') BARCODE
		FROM	(
				SELECT		BARCODE
				FROM		TB_PERSON
				WHERE		DELETION = '0'  
				AND			PRSNTYPE = '1'
				 
				<DYNAMIC>
						<ISNOTEMPTY property="IDENTINO" prepend="AND">
							IDENTINO = #IDENTINO#
						</ISNOTEMPTY>
						<ISNOTEMPTY property="PASSPORT" prepend="AND">
							PASSPORT = #PASSPORT#
						</ISNOTEMPTY>
					</DYNAMIC>
					
		<![CDATA[
				AND			ONESCOMP = #SES@ONESCOMP#
				AND			FACTORY = #SES@FACTORY#
				AND			( EXPDATE  >= CONVERT(CHAR(8),GETDATE(),112) OR ISNULL(EXPDATE ,'') = '' )
				UNION	
				SELECT	'-' BARCODE
		) A
		ORDER BY BARCODE DESC  
		]]>
	

잘보면 CDATA 쿼리안에 비교 연산자가 포함되어있다
xml 에서 < 와 > 의 개행문자에대한 처리시 오류를 방지하기 위해서 CDATA 를 사용하는 것이라고 한다