服务器 频道

PL/SQL学习笔记之五

  数字格式控制符:

  9 代表一位数字(替换符。有,数字显示;没有。不什么都显示。) 
  0 代表一位数字(有数字,显示;没有,强制显示0。) 
  $ 美圆符号
  L 本地货币
  . 小数点
  , 千分符
  B 当整数部分为0时,将整数部分填充为空格。 例:B999
  MI  返回带有后继符号而不是前导负号的负数值,正数值将带有后继的空格。999MI 
  S 返回一个前导符号或后继符号,正数为+,负数为-。 S9999 或 9999S
  PR  使用尖括号返回负数。正数将有前导或后继空格。999PR
  D 在指定位置返回一个小数点。两侧的9的个数指定了最大的位数。99D9
  G 在指定位置返回千分符,G可以在FORMAT_model中出现多次。9G999G9
  C 在指定位置返回ISO货币符号。C可以在FORMAT_model中出现多次。C99
  L 在指定位置上返回本地货币符号。 L99
  V 返回一个被乘以10的N次方的数值,这里N是V后边9的个数。99V99
  EEEE 使用科学记数法返回该数值。9.99EEEE
  RM 使用大写的罗马数字表示返回该数值。 RM
  rm 使用小写的罗马数字表示返回该数值。 rm
  FM 返回不含前导和后继空格的数值。 FM99.09
  
  格式控制符位数一定要大于或等于NUMBER的位数,不能小于。

  用RR解决跨世纪问题:
   小于50的认为是1950-2050
   大于50的认为是1951-1999   

  数字和日期是不能相互转换的。

  ASCIISTR(string) 

  返回只包含有效的SQL字符和斜线的字符串。string中的任何无效的字符将被转换为一个相当的数字,在之前加上斜线。
  
  BIN_TO_NUM(num[,num]...) 

  将一位矢量转换位相当的数字。它的参数是一系列逗号隔开的NUMS,每一个都必须是0或1。
  例如BIN_TO_NUM(1,0,1,1)将返回11,因为11的二进制表示是1011。当使用分组集合和GROUP BY 子句时该函数很有用。     CHARTOROWID(x)函数,

  将字符串转换成一个ROWID类型的值,注意格式必须采用ROWID数据类型格式,即“数据块号:行序号:数据文件号”。
  
  COMPOSE(string) 

  以相同字符集中完全规格化Unicode形式返回string.string可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB或NCLOB类型。
  

  DECOMPOSE(string)

  返回一个Unicode字符串。它是string的规范分解。string可以是CHAR、VARCHAR2、 NCHAR、NVARCHAR2、CLOB或NCLOB类型。      

  FROM_TZ(timestamp,timezone)

  返回一个TIMESTAMP WITH TIMEZONE 类型值。它将TIMESTAMP(没有时区信息)和提供的TIMEZONE组合在一起。

  HEXTORAW(string)

   将由STRING表示的二进制数值转换为一个RAW数值。STRING应该包含十六进制值。STRING中的每两个字符表示结果RAW中的一个字节。HEXTORAW和RAWTOHEX互为反函数。 

  NUMTODSINTERVAL(x,unit)

  将X转换为INTERVAL DAY TO SECOND 值,X应该是一个数字。UNIT是一个字符字符串(可以是CHAR、VARCHAR2、NCHAR或NVARCHAR2),且是''DAY''、''HOUR''、''MINUTE''、''SECOND''之一。unit是不区分大小写的,返回值的缺省精度为9。

  NUMTOYMINTERVAL(x,unit)

  将X转换成INTERVAL YEAR TO MONTH 值,X应该是一个数字。UNIT是一个字符字符串(可以是CHAR、VARCHAR2、NCHAR或NVARCHAR2),且是''YEAR''或''MONTH''之一。unit是不区分大小写的,返回值的缺省精度为9。 

  REFTOHEX(refvalue)

  返回一REF refvalue的十六进制表示。

  RAWTOHEX(rawvalue)

  将RAW类型值rawvalue转换为一个十六进制表示的字符串。rawvalue中的每个字节转换为一个双字符的字符串。

  RAWTONHEX(rawvalue)

  将RAW类型值rawvalue转换为一个十六进制表示的字符串。rawvalue中的每个字节转换为一个双字符的字符串。
  RAWTONHEX返回值是NVARCHAR2类型而不是VARCHAR2类型。

  ROWIDTOCHAR(rowid)函数,将ROWID类型值转换成字符串。与CHARTOROWID互为反函数。

  ROWIDYONCHAR(rowid) 与ROWIDTOCHAR类似,返回类型是NCHAR,而不是CHAR。

  TO_CLOB(string)

  将string转换为CLOB。string可以是文字或另一个LOB列。如果参数包含NCHAR数据,它被转换为数据库字符集

  TO_DSINTERVAL(string[,nlsparams])

  将string(可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2)转换为 INTERVAL DAY TO SECOND 类型。如果
  选定nlsparams,则nlsparams只能包含小数点和千分位字符的NLS_NUMERIC_CHARARCTERS表示。

  TO_LOB(long_column)

  将long_column转换成LOB。这个函数用于将LONG和LONG RAW分别转换为CLOB和LOB。

  TO_MULTI_BYTE(string)

  返回将所有单字节字符替换为等价的多字节字符的STRING。该函数仅当数据库字符集同时包含单字节和多字节字符时才使用。否则,STRING不会进行任何处理而被返回,与TO_SINGLE_BYTE 互为反函数。
  TO_NCHAR

  和TO_CHAR相似,结果是属于国家字符集而不是数据库字符集。

  TO_NCLOB(string)

  将STRING转换为NCLOB。STRING可以是文字或另一LOB列。

  TO_SINGLE_BYTE(string)

  返回将所有双字节字符替换为等价的单字节字符的STRING。。该函数仅当数据库字符集同时包含单字节和多字节字符时才使用。否则,STRING不会进行任何处理而被返回,与TO_MULTI_BYTE 互为反函数。

  TO_TIMESTAMP(string[,format[,nlsparams]])

  将其参数CHAR或VARCHAR2类型string转换成TIMESTAMP类型。

  TO_TIMESTAMP_TZ(string[,format[,nlsparams]])

  将其参数CHAR或VARCHAR2类型string转换成 TIMESTAMP WITH TIMEZONE 类型。

  TO_YMINTERVAL(string)

  将string(可以是CHAR、VARCHAR2、NCHAR、NVARCHAR2)转换为INTERVAL YEAR TO MONTH 类型。
  TO_YMINTERVAL与TO_DSINTERVAL相似,除了它不能使用NLS参数作为参数并返回YEAR TO MONTH时间间隔而不DAY TO SECOND 时间间隔。

0
相关文章