<![CDATA[ ]]>是什么意思?
全名:character data
在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待
CDATA的形式如下:
<![CDATA[文本内容]]>
CDATA的文本内容中不能出现字符串“]]>”,另外,CDATA不能嵌套。
在XML文档中的所有文本都会被解析器解析,只有在CDATA部件之内的文本会被解析器忽略。
比如文本内容中使用“<”这样的特殊字符时,XML使用解析错误。要对"<"进行转义(<)才能正常解析。
所以,不单只是在XML中,还有在脚本或样式表,如果在中使用特殊字符(例如 < 或 &)或实体引用(例如 < 或 &)
或程序代码,则需要将脚本或样式表的内容标记为 CDATA(字符数据)节,在CDATA内部的所有内容都会被解析器忽略,这样就能够正常解析。
例如:在xml中写sql语句有需要用到特殊符号的则需要进行特殊的处理
需要条件过滤时候的代码:
<isNotEmpty prepend="AND" property="BeginDate">
<![CDATA[
a.ordertime >= to_date(#BeginDate#,'yyyy-MM-dd')
]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="EndDate">
<![CDATA[
a.ordertime < to_date(#EndDate#,'yyyy-MM-dd') + 1
]]>
</isNotEmpty>
或者:时间段内查询数据
a.ordertime >= to_date(#BeginDate#,'yyyy-MM-dd') and a.ordertime < to_date(#EndDate#,'yyyy-MM-dd') + 1
另外,在Oracle中如果想要查询当天的数据则需要在前一天的那个时间加1,如果小于等于则查询的日期是到截止日期的00:00:00时刻,不包含当前截止日期。