Oracle 11g 一共有4种built-in literals
1. 文本literals是用来存储文字常量
N表示是否使用国家字符集进行编码,c是的用户字符集种的字符,单个或多个都是可以的,单引号是字符串的边界,如果字符串内部包含了单引号,我们需要使用2个单引号来表示,也就是转义字符。例如 'Jackie''s raincoat', N'nchar literal'。
Q/q表示后面字符串中的单引号不需要使用转义字符,quote_delimiter可以是除回车,tab,空格以外的所有字符,并且也可以出现在characters种,但是需要注意如果出现在characters种,要保证后面不是单引号。这种方式在拼接动态sql的时候应该比较有用,例如 q'{SELECT * FROM employees WHERE last_name = 'Smith';}'
2. 数字literals用来定义数字常量,包括定点数和浮点数
整数
数字和浮点数
E/e表示科学计数法,f/F/d/D表示单精度浮点还是双精度浮点,请注意如果忽略了他们,默认类型就是number,如果精度超过了number所能提供的38位,就会被截断,如果超出指定类型所支持的范围,oracle就会报错
3. 日期literals
日期literals是可以被TO_DATE函数接受的字符串,例如 ‘26-6月-13’,可以指定format,如果不指定format,就必须遵守默认format,可以通过show parameter NLS_DATE_FORMAT查看默认format,当然你也可以使用ANSI日期字符串,例如
DATE '2013-06-26'。
如果你需要包含秒毫秒级的数据,TIMESTAMP Literals将是不二选择,例如TIMESTAMP '2013-06-26 09:26:50.124'。
如果你需要根据不同时区使用不同的时间,那么TIMESTAMP WITH TIME ZONE Literals将满足你的要求,但是请注意如果2个字符串表示的同一个UTC时间,无论时区是什么,oracle将认为他们是相等的, 例如TIMESTAMP '1999-04-15 8:00:00 -8:00 和TIMESTAMP '1999-04-15 11:00:00 -5:00'。
4. Interval Literals
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
Interval literals用来表示一段时间的字符串,无论哪一种,都可以指定2个字段,leading field和trailling field,trailing field都必须比leading field的级别低,例如year to month中,如果leading field指定为month,将不能再指定leading field,否则oracle 将抛出error,另外interval之间可以做加减法运算。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7939908/viewspace-764857/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7939908/viewspace-764857/