ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL Language 之字符串

SQL Language 之字符串

原创 Linux操作系统 作者:weiqiang137 时间:2013-06-24 09:39:12 0 删除 编辑
Oracle 11g 一共有4种built-in literals
1. 文本literals是用来存储文字常量
    De.ion of string.gif follows
    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用来定义数字常量,包括定点数和浮点数
   整数
   De.ion of integer.gif follows
   数字和浮点数  
De.ion of number.gif follows
    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
    De.ion of interval_year_to_month.gif follows
    
    INTERVAL DAY TO SECOND
    De.ion of interval_day_to_second.gif follows
    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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-04-16

  • 博文量
    6
  • 访问量
    7783