Oracle函数集锦

Oracle中的游标和函数详解 Oracle中的游标和函数详解 1.游标 游标是一种 PL/SQL 控制结构;可以对 SQL 语句的处理进行显示控制,便于对表的行数据 逐条进行处理。 游标并不是一个数据库对象,只是存留在内存中。 操作步骤:    声明游标    打开游标    取出结果,此时的结果取出的是一行数据    关闭游标 到底那种类型可以把一行的数据都装进来    此时使用 ROWTYPE 类型,此类型表示可以把一行的数据都装进来。 例如:查询雇员编号为 7369 的信息(肯定是一行信息)。 例:查询雇员编号为 7369 的信息(肯定是一行信息)。 DECLARE eno emp.empno 立即下载

  本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数。分二类介绍,分别是:

  著名函数篇-经常用到的函数

  非著名函数篇-即虽然很少用到,但某些情况下却很实用

  注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。

  单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。

  (一).数值型函数(Number Functions)

  数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点。

  1、MOD(n1,n2) 返回n1除n2的余数,如果n2=0则返回n1的值。

  例如:SELECT MOD(24,5) FROM DUAL;

  2、ROUND(n1[,n2]) 返回四舍五入小数点右边n2位后n1的值,n2缺省值为0,如果n2为负数就舍入到小数点左边相应的位上(虽然oracle documents上提到n2的值必须为整数,事实上执行时此处的判断并不严谨,即使n2为非整数,它也会自动将n2取整后做处理,但是我文档中其它提到必须为整的地方需要特别注意,如果不为整执行时会报错的)。

  例如:SELECT ROUND(23.56),ROUND(23.56,1),ROUND(23.56,-1) FROM DUAL;

  3、TRUNC(n1[,n2] 返回截尾到n2位小数的n1的值,n2缺省设置为0,当n2为缺省设置时会将n1截尾为整数,如果n2为负值,就截尾在小数点左边相应的位上。

  例如:SELECT TRUNC(23.56),TRUNC(23.56,1),TRUNC(23.56,-1) FROM DUAL;

  (二).字符型函数返回字符值(Character Functions Returning Character Values)

  该类函数返回与输入类型相同的类型。

   返回的CHAR类型值长度不超过2000字节;

   返回的VCHAR2类型值长度不超过4000字节;

  如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。

   返回的CLOB类型值长度不超过4G;

  对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。

  1、LOWER(c) 将指定字符串内字符变为小写,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB类型

  例如:SELECT LOWER('WhaT is tHis') FROM DUAL;

  2、UPPER(c) 将指定字符串内字符变为大写,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB类型

  例如:SELECT UPPER('WhaT is tHis') FROM DUAL;

 

  3、LPAD(c1,n[,c2]) 返回指定长度=n的字符串,需要注意的有几点:

   如果n

   如果n>c1.length and c2 is null,以空格从左向右补充字符长度至n并返回;

   如果n>c1.length and c2 is not null,以指定字符c2从左向右补充c1长度至n并返回;

  例如:SELECT LPAD('WhaT is tHis',5),LPAD('WhaT is tHis',25),LPAD('WhaT is tHis',25,'-') FROM DUAL;

  最后大家再猜一猜,如果n<0,结果会怎么样

  4、RPAD(c1,n[,c2]) 返回指定长度=n的字符串,基本与上同,不过补充字符是从右向左方向正好与上相反;

  例如:SELECT RPAD('WhaT is tHis',5),RPAD('WhaT is tHis',25),RPAD('WhaT is tHis',25,'-') FROM DUAL;

  5、TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1) 哈哈,被俺无敌的形容方式搞晕头了吧,这个地方还是看图更明了一些。

  看起来很复杂,理解起来很简单:

   如果没有指定任何参数则oracle去除c1头尾空格

  例如:SELECT TRIM(' WhaT is tHis ') FROM DUAL;

   如果指定了c2参数,则oracle去掉c1头尾c2(这个建议细致测试,有多种不同情形的哟)

  例如:SELECT TRIM('W' FROM 'WhaT is tHis w W') FROM DUAL;

   如果指定了leading参数则会去掉c1头部c2

  例如:SELECT TRIM(leading 'W' FROM 'WhaT is tHis w W') FROM DUAL;

   如果指定了trailing参数则会去掉c1尾部c2

  例如:SELECT TRIM(trailing 'W' FROM 'WhaT is tHis w W') FROM DUAL;

   如果指定了both参数则会去掉c1头尾c2(跟不指定有区别吗?没区别!)

  例如:SELECT TRIM(both 'W' FROM 'WhaT is tHis w W') FROM DUAL;

  注意:c2长度=1

  6、LTRIM(c1[,c2]) 千万表以为与上面那个长的像,功能也与上面的类似,本函数是从字符串c1左侧截取掉与指定字符串c2相同的字符并返回。如果c2为空则默认截取空格。

  例如:SELECT LTRIM('WWhhhhhaT is tHis w W','Wh') FROM DUAL;

  7、RTRIM(c1,c2)与上同,不过方向相反

  例如:SELECT RTRIM('WWhhhhhaT is tHis w W','W w') FROM DUAL;

  8、REPLACE(c1,c2[,c3]) 将c1字符串中的c2替换为c3,如果c3为空,则从c1中删除所有c2。

  例如:SELECT REPLACE('WWhhhhhaT is tHis w W','W','-') FROM DUAL;

  9、SOUNDEX(c) 神奇的函数啊,该函数返回字符串参数的语音表示形式,对于比较一些读音相同,但是拼写不同的单词非常有用。计算语音的算法如下:

   保留字符串首字母,但删除a、e、h、i、o、w、y。

   将下表中的数字赋给相对应的字母:

  1:b、f、p、v

  2:c、g、k、q、s、x、z

  3:d、t

  4:l

  5:m、n

  6:R

   如果字符串中存在拥有相同数字的2个以上(包含2个)的字母在一起(例如b和f),或者只有h或w,则删除其他的,只保留1个;

   只返回前4个字节,不够用0填充

  例如:SELECT SOUNDEX('dog'),soundex('boy') FROM DUAL;

  10、SUBSTR(c1,n1[,n2]) 截取指定长度的字符串。稍不注意就可能充满了陷阱的函数。

  n1=开始长度;

  n2=截取的字符串长度,如果为空,默认截取到字符串结尾;

   如果n1=0 then n1=1

   如果n1>0,则oracle从左向右确认起始位置截取

  例如:SELECT SUBSTR('What is this',5,3) FROM DUAL;

   如果n1<0,则oracle从右向左数确认起始位置

  例如:SELECT SUBSTR('What is this',-5,3) FROM DUAL;

   如果n1>c1.length则返回空

  例如:SELECT SUBSTR('What is this',50,3) FROM DUAL;

  然后再请你猜猜,如果n2<1,会如何返回值呢

  11、TRANSLATE(c1,c2,c3) 就功能而言,此函数与replace有些相似。但需要注意的一点是,translate是绝对匹配替换,这点与replace函数具有非常大区别。什么是绝对匹配替换呢?简单的说,是将字符串c1中按一定的格式c2替换为c3。如果文字形容仍然无法理解,我们通过几具实例来说明:

  例如:

  SELECT TRANSLATE('What is this','','-') FROM DUAL;

  SELECT TRANSLATE('What is this','-','') FROM DUAL;

  结果都是空。来试试这个:

  SELECT TRANSLATE('What is this',' ',' ') FROM DUAL;

  再来看这个:

  SELECT TRANSLATE('What is this','ait','-*') FROM DUAL;

  是否明白了点呢?Replace函数理解比较简单,它是将字符串中指定字符替换成其它字符,它的字符必须是连续的。而translate中,则是指定字符串c1中出现的c2,将c2中各个字符替换成c3中位置顺序与其相同的c3中的字符。明白了?Replace是替换,而translate则像是过滤。

  (三).字符型函数返回数字值(Character Functions Returning Number Values)

  本类函数支持所有的数据类型

  1、INSTR(c1,c2[,n1[,n2]]) 返回c2在c1中位置

   c1:原字符串

   c2:要寻找的字符串

   n1:查询起始位置,正值表示从左到右,负值表示从右到左 (大小表示位置,比如3表示左面第3处开始,-3表示右面第3处开始)。黑黑,如果为0的话,则返回的也是0

   n2:第几个匹配项。大于0

  例如:SELECT INSTR('abcdefg','e',-3) FROM DUAL;

  2、LENGTH(c) 返回指定字符串的长度。如果

  例如:SELECT LENGTH('A123中') FROM DUAL;

  猜猜SELECT LENGTH('') FROM DUAL;的返回值是什么

  (四).日期函数(Datetime Functions)

  本类函数中,除months_between返回数值外,其它都将返回日期。

  1、ADD_MONTHS() 返回指定日期月份+n之后的值,n可以为任何整数。

  例如:SELECT ADD_MONTHS(sysdate,12),ADD_MONTHS(sysdate,-12) FROM DUAL;

  2、CURRENT_DATE 返回当前session所在时区的默认时间

  例如:

  SQL> alter session set nls_date_format = 'mm-dd-yyyy' ;

  SQL> select current_date from dual;

  3、SYSDATE 功能与上相同,返回当前session所在时区的默认时间。但是需要注意的一点是,如果同时使用sysdate与current_date获得的时间不一定相同,某些情况下current_date会比sysdate快一秒。经过与xyf_tck(兄台的大作ORACLE的工作机制写的很好,深入浅出)的短暂交流,我们认为current_date是将current_timestamp中毫秒四舍五入后的返回,虽然没有找到文档支持,但是想来应该八九不离十。同时,仅是某些情况下会有一秒的误差,一般情况下并不会对你的操作造成影响,所以了解即可。

  例如:SELECT SYSDATE,CURRENT_DATE FROM DUAL;

  4、LAST_DAY(d) 返回指定时间所在月的最后一天

  例如:SELECT last_day(SYSDATE) FROM DUAL;

  5、NEXT_DAY(d,n) 返回指定日期后第一个n的日期,n为一周中的某一天。但是,需要注意的是n如果为字符的话,它的星期形式需要与当前session默认时区中的星期形式相同。

  例如:三思用的中文nt,nls_language值为SIMPLIFIED CHINESE

  SELECT NEXT_DAY(SYSDATE,5) FROM DUAL;

  SELECT NEXT_DAY(SYSDATE,'星期四') FROM DUAL;

  两种方式都可以取到正确的返回,但是:

  SELECT NEXT_DAY(SYSDATE,'Thursday') FROM DUAL;

  则会执行出错,提供你说周中的日无效,就是这个原因了。

  6、MONTHS_BETWEEN(d1,d2) 返回d1与d2间的月份差,视d1,d2的值大小,结果可正可负,当然也有可能为0

  例如:

  SELECT months_between(SYSDATE, sysdate),

  months_between(SYSDATE, add_months(sysdate, -1)),

  months_between(SYSDATE, add_months(sysdate, 1))

  FROM DUAL;

  7、ROUND(d[,fmt]) 前面讲数值型函数的时候介绍过ROUND,此处与上功能基本相似,不过此处操作的是日期。如果不指定fmt参数,则默认返回距离指定日期最近的日期。

  例如:SELECT ROUND(SYSDATE,'HH24') FROM DUAL;

  8、TRUNC(d[,fmt]) 与前面介绍的数值型TRUNC原理相同,不过此处也是操作的日期型。

  例如:SELECT TRUNC(SYSDATE,'HH24') FROM DUAL;

  (五).转换函数(Conversion Functions)

  转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。

  1、TO_CHAR() 本函数又可以分三小类,分别是

   转换字符->字符TO_CHAR(c):将nchar,nvarchar2,clob,nclob类型转换为char类型;

  例如:SELECT TO_CHAR('AABBCC') FROM DUAL;

   转换时间->字符TO_CHAR(d[,fmt]):将指定的时间(data,timestamp,timestamp with time zone)按照指定格式转换为varchar2类型;

  例如:SELECT TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss') FROM DUAL;

   转换数值->字符TO_CHAR(n[,fmt]):将指定数值n按照指定格式fmt转换为varchar2类型并返回;

  例如:SELECT TO_CHAR(-100, 'L99G999D99MI') FROM DUAL;

  2、TO_DATE(c[,fmt[,nls]]) 将char,nchar,varchar2,nvarchar2转换为日期类型,如果fmt参数不为空,则按照fmt中指定格式进行转换。注意这里的fmt参数。如果ftm为'J'则表示按照公元制(Julian day)转换,c则必须为大于0并小于5373484的正整数。

  例如:

  SELECT TO_DATE(2454336, 'J') FROM DUAL;

  SELECT TO_DATE('2007-8-23 23:25:00', 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;

  为什么公元制的话,c的值必须不大于5373484呢?因为Oracle的DATE类型的取值范围是公元前4712年1月1日至公元9999年12月31日。看看下面这个语句:

  SELECT TO_CHAR(TO_DATE('9999-12-31','yyyy-mm-dd'),'j') FROM DUAL;

  3、TO_NUMBER(c[,fmt[,nls]]) 将char,nchar,varchar2,nvarchar2型字串按照fmt中指定格式转换为数值类型并返回。

  例如:SELECT TO_NUMBER('-100.00', '9G999D99') FROM DUAL;

  (六).其它辅助函数(Miscellaneous Single-Row Functions)

  1、DECODE(exp,s1,r1,s2,r2..s,r[,def]) 可以把它理解成一个增强型的if else,只不过它并不通过多行语句,而是在一个函数内实现if else的功能。

  exp做为初始参数。s做为对比值,相同则返回r,如果s有多个,则持续遍历所有s,直到某个条件为真为止,否则返回默认值def(如果指定了的话),如果没有默认值,并且前面的对比也都没有为真,则返回空。

  毫无疑问,decode是个非常重要的函数,在实现行转列等功能时都会用到,需要牢记和熟练使用。

  例如:select decode('a2','a1','true1','a2','true2','default') from dual;

  2、GREATEST(n1,n2,...n) 返回序列中的最大值

  例如:SELECT GREATEST(15,5,75,8) "Greatest" FROM DUAL;

  3、LEAST(n1,n2....n) 返回序列中的最小值

  例如:SELECT LEAST(15,5,75,8) LEAST FROM DUAL;

  4、NULLIF(c1,c2)

  Nullif也是个很有意思的函数。逻辑等价于:CASE WHEN c1 = c2 THEN NULL ELSE c1 END

  例如:SELECT NULLIF('a','b'),NULLIF('a','a') FROM DUAL;

  5、NVL(c1,c2) 逻辑等价于IF c1 is null THEN c2 ELSE c1 END。c1,c2可以是任何类型。如果两者类型不同,则oracle会自动将c2转换为c1的类型。

  例如:SELECT NVL(null, '12') FROM DUAL;

  6、NVL2(c1,c2,c3) 大家可能都用到nvl,但你用过nvl2吗?如果c1非空则返回c2,如果c1为空则返回c3

  例如:select nvl2('a', 'b', 'c') isNull,nvl2(null, 'b', 'c') isNotNull from dual;

  7、SYS_CONNECT_BY_PATH(col,c) 该函数只能应用于树状查询。返回通过c1连接的从根到节点的路径。该函数必须与connect by 子句共同使用。

  例如:

  create table tmp3(
  rootcol varchar2(10),
  nodecol varchar2(10)
  );
  insert into tmp3 values ('','a001');
  insert into tmp3 values ('','b001');
  insert into tmp3 values ('a001','a002');
  insert into tmp3 values ('a002','a004');
  insert into tmp3 values ('a001','a003');
  insert into tmp3 values ('a003','a005');
  insert into tmp3 values ('a005','a008');
  insert into tmp3 values ('b001','b003');
  insert into tmp3 values ('b003','b005');
  select lpad(' ', level*10,'=') ||'>'|| sys_connect_by_path(nodecol,'/')
  from tmp3
  start with rootcol = 'a001'
  connect by prior nodecol =rootcol;

  8、SYS_CONTEXT(c1,c2[,n]) 将指定命名空间c1的指定参数c2的值按照指定长度n截取后返回。

  Oracle9i提供内置了一个命名空间USERENV,描述了当前session的各项信息,其拥有下列参数:

   CURRENT_SCHEMA:当前模式名;

   CURRENT_USER:当前用户;

   IP_ADDRESS:当前客户端IP地址;

   OS_USER:当前客户端操作系统用户;

  等等数十项,更详细的参数列还请大家直接参考Oracle Online Documents

  例如:SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM DUAL;

  注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。

  单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。

  (一).数值型函数(Number Functions)

  数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点。

  1、ABS(n) 返回数字的绝对值

  例如:SELECT ABS(-1000000.01) FROM DUAL;

  2、COS(n) 返回n的余弦值

  例如:SELECT COS(-2) FROM DUAL;

  3、ACOS(n) 反余弦函数,n between -1 and 1,返回值between 0 and pi。

  例如:SELECT ACOS(0.9) FROM DUAL;

  4、BITAND(n1,n2) 位与运算,这个太有意思了,虽然没想到可能用到哪里,详细说明一下:

  假设3,9做位与运算,3的二进制形式为:0011,9的二进制形式为:1001,则结果是0001,转换成10进制数为1。

  例如:SELECT BITAND(3,9) FROM DUAL;

  5、CEIL(n) 返回大于或等于n的最小的整数值

  例如:SELECT ceil(18.2) FROM DUAL;

  考你一下,猜猜ceil(-18.2)的值会是什么呢?

  6、FLOOR(n) 返回小于等于n的最大整数值

  例如:SELECT FLOOR(2.2) FROM DUAL;

  再猜猜floor(-2.2)的值会是什么呢

  7、BIN_TO_NUM(n1,n2,....n) 二进制转向十进制

  例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;

  8、SIN(n) 返回n的正玄值,n为弧度。

  例如:SELECT SIN(10) FROM DUAL;

  9、SINH(n) 返回n的双曲正玄值,n为弧度。

  例如:SELECT SINH(10) FROM DUAL;

  10、ASIN(n) 反正玄函数,n between -1 and 1,返回值between pi/2 and -pi/2。

  例如:SELECT ASIN(0.8) FROM DUAL;

  11、TAN(n) 返回n的正切值,n为弧度

  例如:SELECT TAN(0.8) FROM DUAL;

  12、TANH(n) 返回n的双曲正切值,n为弧度

  例如:SELECT TANH(0.8) FROM DUAL;

  13、ATAN(n) 反正切函数,n表示弧度,返回值between pi/2 and -pi/2。

  例如:SELECT ATAN(-444444.9999999) FROM DUAL;

  14、EXP(n) 返回e的n次幂,e = 2.71828183 ...

  例如:SELECT EXP(3) FROM DUAL;

  15、LN(n) 返回n的自然对数,n>0

  例如:SELECT LN(0.9) FROM DUAL;

  16、LOG(n1,n2) 返回以n1为底n2的对数,n1 >0 and not 1 ,n2>0

  例如:SELECT LOG(1.1,2.2) FROM DUAL;

  17、POWER(n1,n2) 返回n1的n2次方。n1,n2可以为任意数值,不过如果m是负数,则n必须为整数

  例如:SELECT POWER(2.2,2.2) FROM DUAL;

  18、SIGN(n) 如果n<0返回-1,如果n>0返回1,如果n=0返回0.

  例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;

  19、SQRT(n) 返回n的平方根,n为弧度。n>=0

  例如:SELECT SQRT(0.1) FROM DUAL;

  (二).字符型函数返回字符值(Character Functions Returning Character Values)

  该类函数返回与输入类型相同的类型。

   返回的CHAR类型值长度不超过2000字节;

   返回的VCHAR2类型值长度不超过4000字节;

  如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。

   返回的CLOB类型值长度不超过4G;

  对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。

  1、CHR(N[ USING NCHAR_CS]) 返回指定数值在当前字符集中对应的字符

  例如:SELECT CHR(95) FROM DUAL;

  2、CONCAT(c1,c2) 连接字符串,等同于||

  例如:SELECT concat('aa','bb') FROM DUAL;

  3、INITCAP(c) 将字符串中单词的第一个字母转换为大写,其它则转换为小写

  例如:SELECT INITCAP('whaT is this') FROM DUAL;

  4、NLS_INITCAP(c) 返回指定字符串,并将字符串中第一个字母变大写,其它字母变小写

  例如:SELECT NLS_INITCAP('中华miNZHu') FROM DUAL;

  它还具有一个参数:Nlsparam用来指定排序规则,可以忽略,默认状态该参数为当前session的排序规则。

  (三).字符型函数返回数字值(Character Functions Returning Number Values)

  本类函数支持所有的数据类型

  1、ASCII(c) 与chr函数的用途刚刚相反,本函数返回指定字符在当前字符集下对应的数值。

  例如:SELECT ASCII('_') FROM DUAL;

  (四).日期函数(Datetime Functions)

  本类函数中,除months_between返回数值外,其它都将返回日期。

  1、CURRENT_TIMESTAMP([n]) 返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6

  例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;

  2、LOCALTIMESTAMP([n]) 与上同,返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6

  例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;

  3、SYSTIMESTAMP([n]) 与上同,返回当前数据库所在时区的日期和时间,n表示毫秒级的精度,>0 and <6

  例如:SELECT SYSTIMESTAMP(4) FROM DUAL;

  4、DBTIMEZONE 返回数据库的当前时区

  例如:SELECT DBTIMEZONE FROM DUAL;

  5、SESSIONTIMEZONE 返回当前session所在时区

  例如:SELECT SESSIONTIMEZONE FROM DUAL;

  6、EXTRACT(key from date) key=(year,month,day,hour,minute,second) 从指定时间提到指定日期列

  例如:SELECT EXTRACT(year from sysdate) FROM DUAL;

  7、TO_TIMESTAMP(c1[,fmt]) 将指定字符按指定格式转换为timestamp格式。

  例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;

  (五).转换函数(Conversion Functions)

  转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。

  1、BIN_TO_NUM(n1,n2...n) 将一组位向量转换为等价的十进制形式。

  例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;

  2、CAST(c as newtype) 将指定字串转换为指定类型,基本只对字符类型有效,比如char,number,date,rowid等。此类转换有一个专门的表列明了哪种类型可以转换为哪种类型,此处就不作酹述。

  例如:SELECT CAST('1101' AS NUMBER(5)) FROM DUAL;

  3、CHARTOROWID(c) 将字符串转换为rowid类型

  例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;

  4、ROWIDTOCHAR(rowid) 转换rowid值为varchar2类型。返回串长度为18个字节。

  例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;

  5、TO_MULTI_BYTE(c) 将指定字符转换为全角并返回char类型字串

  例如:SELECT TO_MULTI_BYTE('ABC abc 中华') FROM DUAL;

  6、TO_SINGLE_BYTE(c) 将指定字符转换为半角并返回char类型字串

  例如:SELECT TO_SINGLE_BYTE('ABC abc中华') FROM DUAL;

  (六).其它辅助函数(Miscellaneous Single-Row Functions)

  1、COALESCE(n1,n2,....n) 返回序列中的第一个非空值

  例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;

  2、DUMP(exp[,fmt[,start[,length]]])

  dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。此处仅介绍用法,不对其功能做深入分析。

  如上所示,dump拥有不少参数。其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。start参数表示开始位置,length表示以,分隔的字串数。

  例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;

  3、EMPTY_BLOB,EMPTY_CLOB 这两个函数都是返回空lob类型,通常被用于insert和update等语句以初始化lob列,或者将其置为空。EMPTY表示LOB已经被初始化,只不过还没有用来存储数据。

  4、NLS_CHARSET_NAME(n) 返回指定数值对应的字符集名称。

  例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;

  5、NLS_CHARSET_ID(c) 返回指定字符对应的字符集id。

  例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;

  6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一个NCHAR值的声明宽度(以字符为单位).n1是该值以字节为单位的长度,n2是该值的字符集ID

  例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;

  7、SYS_EXTRACT_UTC(timestamp) 返回标准通用时间即格林威治时间。

  例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;

  8、SYS_TYPEID(object_type) 返回对象类型对应的id。

  例如:这个这个,没有建立过自定义对象,咋做示例?

  9、UID 返回一个唯一标识当前数据库用户的整数。

  例如:SELECT UID FROM DUAL;

  10、USER 返回当前session用户

  例如:SELECT USER FROM DUAL;

  11、USERENV(c) 该函数用来返回当前session的信息,据oracle文档的说明,userenv是为了保持向下兼容的遗留函数。oracle公司推荐你使用sys_context函数调用USERENV命名空间来获取相关信息,所以大家了解下就行了。

  例如:SELECT USERENV('LANGUAGE') FROM DUAL;

  12、VSIZE(c) 返回c的字节数。

  例如:SELECT VSIZE('abc中华') FROM DUAL;

  注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。

  单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。

  (一).数值型函数(Number Functions)

  数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点。

  1、ABS(n) 返回数字的绝对值

  例如:SELECT ABS(-1000000.01) FROM DUAL;

  2、COS(n) 返回n的余弦值

  例如:SELECT COS(-2) FROM DUAL;

  3、ACOS(n) 反余弦函数,n between -1 and 1,返回值between 0 and pi。

  例如:SELECT ACOS(0.9) FROM DUAL;

  4、BITAND(n1,n2) 位与运算,这个太有意思了,虽然没想到可能用到哪里,详细说明一下:

  假设3,9做位与运算,3的二进制形式为:0011,9的二进制形式为:1001,则结果是0001,转换成10进制数为1。

  例如:SELECT BITAND(3,9) FROM DUAL;

  5、CEIL(n) 返回大于或等于n的最小的整数值

  例如:SELECT ceil(18.2) FROM DUAL;

  考你一下,猜猜ceil(-18.2)的值会是什么呢

  6、FLOOR(n) 返回小于等于n的最大整数值

  例如:SELECT FLOOR(2.2) FROM DUAL;

  再猜猜floor(-2.2)的值会是什么呢

  7、BIN_TO_NUM(n1,n2,....n) 二进制转向十进制

  例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;

  8、SIN(n) 返回n的正玄值,n为弧度。

  例如:SELECT SIN(10) FROM DUAL;

  9、SINH(n) 返回n的双曲正玄值,n为弧度。

  例如:SELECT SINH(10) FROM DUAL;

  10、ASIN(n) 反正玄函数,n between -1 and 1,返回值between pi/2 and -pi/2。

  例如:SELECT ASIN(0.8) FROM DUAL;

  11、TAN(n) 返回n的正切值,n为弧度

  例如:SELECT TAN(0.8) FROM DUAL;

  12、TANH(n) 返回n的双曲正切值,n为弧度

  例如:SELECT TANH(0.8) FROM DUAL;

  13、ATAN(n) 反正切函数,n表示弧度,返回值between pi/2 and -pi/2。

  例如:SELECT ATAN(-444444.9999999) FROM DUAL;

  14、EXP(n) 返回e的n次幂,e = 2.71828183 ...

  例如:SELECT EXP(3) FROM DUAL;

  15、LN(n) 返回n的自然对数,n>0

  例如:SELECT LN(0.9) FROM DUAL;

  16、LOG(n1,n2) 返回以n1为底n2的对数,n1 >0 and not 1 ,n2>0

  例如:SELECT LOG(1.1,2.2) FROM DUAL;

  17、POWER(n1,n2) 返回n1的n2次方。n1,n2可以为任意数值,不过如果m是负数,则n必须为整数

  例如:SELECT POWER(2.2,2.2) FROM DUAL;

  18、SIGN(n) 如果n<0返回-1,如果n>0返回1,如果n=0返回0.

  例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;

  19、SQRT(n) 返回n的平方根,n为弧度。n>=0

  例如:SELECT SQRT(0.1) FROM DUAL;

  (二).字符型函数返回字符值(Character Functions Returning Character Values)

  该类函数返回与输入类型相同的类型。

   返回的CHAR类型值长度不超过2000字节;

   返回的VCHAR2类型值长度不超过4000字节;

  如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。

   返回的CLOB类型值长度不超过4G;

  对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。

  1、CHR(N[ USING NCHAR_CS]) 返回指定数值在当前字符集中对应的字符

  例如:SELECT CHR(95) FROM DUAL;

  2、CONCAT(c1,c2) 连接字符串,等同于||

  例如:SELECT concat('aa','bb') FROM DUAL;

  3、INITCAP(c) 将字符串中单词的第一个字母转换为大写,其它则转换为小写

  例如:SELECT INITCAP('whaT is this') FROM DUAL;

  4、NLS_INITCAP(c) 返回指定字符串,并将字符串中第一个字母变大写,其它字母变小写

  例如:SELECT NLS_INITCAP('中华miNZHu') FROM DUAL;

  它还具有一个参数:Nlsparam用来指定排序规则,可以忽略,默认状态该参数为当前session的排序规则。

  (三).字符型函数返回数字值(Character Functions Returning Number Values)

  本类函数支持所有的数据类型

  1、ASCII(c) 与chr函数的用途刚刚相反,本函数返回指定字符在当前字符集下对应的数值。

  例如:SELECT ASCII('_') FROM DUAL;

  (四).日期函数(Datetime Functions)

  本类函数中,除months_between返回数值外,其它都将返回日期。

  1、CURRENT_TIMESTAMP([n]) 返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6

  例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;

  2、LOCALTIMESTAMP([n]) 与上同,返回当前session所在时区的日期和时间。n表示毫秒级的精度,不大于6

  例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;

  3、SYSTIMESTAMP([n]) 与上同,返回当前数据库所在时区的日期和时间,n表示毫秒级的精度,>0 and <6

  例如:SELECT SYSTIMESTAMP(4) FROM DUAL;

  4、DBTIMEZONE 返回数据库的当前时区

  例如:SELECT DBTIMEZONE FROM DUAL;

  5、SESSIONTIMEZONE 返回当前session所在时区

  例如:SELECT SESSIONTIMEZONE FROM DUAL;

  6、EXTRACT(key from date) key=(year,month,day,hour,minute,second) 从指定时间提到指定日期列

  例如:SELECT EXTRACT(year from sysdate) FROM DUAL;

  7、TO_TIMESTAMP(c1[,fmt]) 将指定字符按指定格式转换为timestamp格式。

  例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;

  (五).转换函数(Conversion Functions)

  转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。

  1、BIN_TO_NUM(n1,n2...n) 将一组位向量转换为等价的十进制形式。

  例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;

  2、CAST(c as newtype) 将指定字串转换为指定类型,基本只对字符类型有效,比如char,number,date,rowid等。此类转换有一个专门的表列明了哪种类型可以转换为哪种类型,此处就不作酹述。

  例如:SELECT CAST('1101' AS NUMBER(5)) FROM DUAL;

  3、CHARTOROWID(c) 将字符串转换为rowid类型

  例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;

  4、ROWIDTOCHAR(rowid) 转换rowid值为varchar2类型。返回串长度为18个字节。

  例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;

  5、TO_MULTI_BYTE(c) 将指定字符转换为全角并返回char类型字串

  例如:SELECT TO_MULTI_BYTE('ABC abc 中华') FROM DUAL;

  6、TO_SINGLE_BYTE(c) 将指定字符转换为半角并返回char类型字串

  例如:SELECT TO_SINGLE_BYTE('ABC abc中华') FROM DUAL;

  (六).其它辅助函数(Miscellaneous Single-Row Functions)

  1、COALESCE(n1,n2,....n) 返回序列中的第一个非空值

  例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;

  2、DUMP(exp[,fmt[,start[,length]]])

  dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。此处仅介绍用法,不对其功能做深入分析。

  如上所示,dump拥有不少参数。其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。start参数表示开始位置,length表示以,分隔的字串数。

  例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;

  3、EMPTY_BLOB,EMPTY_CLOB 这两个函数都是返回空lob类型,通常被用于insert和update等语句以初始化lob列,或者将其置为空。EMPTY表示LOB已经被初始化,只不过还没有用来存储数据。

  4、NLS_CHARSET_NAME(n) 返回指定数值对应的字符集名称。

  例如:SELECT NLS_CHARSET_NAME(1) FROM DUAL;

  5、NLS_CHARSET_ID(c) 返回指定字符对应的字符集id。

  例如:SELECT NLS_CHARSET_ID('US7ASCII') FROM DUAL;

  6、NLS_CHARSET_DECL_LEN(n1,n2) 返回一个NCHAR值的声明宽度(以字符为单位).n1是该值以字节为单位的长度,n2是该值的字符集ID

  例如:SELECT NLS_CHARSET_DECL_LEN(100, nls_charset_id('US7ASCII')) FROM DUAL;

  7、SYS_EXTRACT_UTC(timestamp) 返回标准通用时间即格林威治时间。

  例如:SELECT SYS_EXTRACT_UTC(current_timestamp) FROM DUAL;

  8、SYS_TYPEID(object_type) 返回对象类型对应的id。

  例如:这个这个,没有建立过自定义对象,咋做示例?

  9、UID 返回一个唯一标识当前数据库用户的整数。

  例如:SELECT UID FROM DUAL;

  10、USER 返回当前session用户

  例如:SELECT USER FROM DUAL;

  11、USERENV(c) 该函数用来返回当前session的信息,据oracle文档的说明,userenv是为了保持向下兼容的遗留函数。oracle公司推荐你使用sys_context函数调用USERENV命名空间来获取相关信息,所以大家了解下就行了。

  例如:SELECT USERENV('LANGUAGE') FROM DUAL;

  12、VSIZE(c) 返回c的字节数。

  例如:SELECT VSIZE('abc中华') FROM DUAL;

汽车IVI中控开发入门及进阶(九):显示屏 显示屏Display panel和触控屏Touch panel,可以说随着汽车四化的进展,屏越来越多,越来越大,越来越高清,成为IVI中控、智能座舱系统的重要组成部分。比如如下一个电阻触摸屏。正文:显示屏主要功能就是显示,车载内容和信息的传递全靠显示屏,目前车载显示屏的种类可以分为:LCD液晶显示屏(TFT(薄膜晶体管)驱动的有源矩阵液晶显示,再细分IPS、TFT、SLCD,这几个子类)、LED显示屏(用 LED发光二极管作为背光光源)、OLED 显示屏。 阅读详情

相关推荐

MiniMAX H3官方SKILL三段式提示词模板与本地部署全解

视频生成模型的效果高度依赖于提示词的结构与质量,而提示词工程正是连接自然语言与视觉表达的关键桥梁。在文本模型之外,视频模型对场景、角色、镜头动作的信息层次更为敏感,普通自由描述往往导致画面漂移、风格不稳定。MiniMAX H3 作为社区热议的视频生成模型,通过一套官方 SKILL 三段式提示词模板,将环境、主体、镜头动作分类组织,免API、免推理即可稳定产出风格统一的素材。这一设计不仅降低了提示词编写门槛,也提升了多轮生成的复用性,适合短视频生产、影视概念设计及自动化视频流水线等场景。本文围绕该模板的结构与

weixin_33309048的博客 1184

达梦类型转换USING报错(CHAR_CS)

达梦类型转换USING报错(CHAR_CS) 达梦技术社区:https://eco.dameng.com 在从Oracle迁移至达梦库时遇到类型转换USING报错,转换成CHAR_CS类型 报错信息 在Oracle中CHAR_CS类型等于VARCHAR2类型 修改如下

931195328 1565

TSMC40nmLP版图实战:从Design Rule解读到Cadence高效布局布线

本文详细解析了TSMC40nmLP工艺的版图设计实战,从Design Rule解读到Cadence高效布局布线技巧。重点介绍了40nm工艺中的关键设计规则,如最小线宽、间距规则和深N阱规则,并分享了Cadence Virtuoso中的高效工作流和射频模块设计技巧,帮助工程师提升版图设计效率和质量。

weixin_29250403的博客 378

Oracle 函数大全

建议使用CTRL + F精确搜索 F.1字符函数——返回字符值 (chr,concat,initcap,lower,lpad/rpad,nls_initcap,nls_lower,nls_upper,regexp_replace,regexp_substr,replace, trim/ltrim/rtrim,soundex,substr,translate,upper)

基于Oracle11G 6970

从零到一:QT for OpenHarmony 开发环境实战搭建与踩坑指南

本文是一份详尽的QT for OpenHarmony开发环境搭建实战指南。文章手把手教你如何在Windows和macOS系统上,从环境准备、核心工具(DevEco Studio与社区版QT SDK)安装配置,到创建首个QT Quick项目、解决构建部署中的常见问题,最终实现应用在OpenHarmony设备上运行。内容涵盖关键配置修改、资源管理及深度踩坑经验,旨在帮助开发者高效开启跨平台开发之旅。

weixin_29190573的博客 326

英飞凌功率MOSFET SPICE 瞬态仿真不收敛问题解决(基于TINA)

英飞凌功率MOSFET SPICE仿真容易出现不收敛问题,这个对于IGBT和SIC的管子应该是一样的,在瞬态仿真分析中,出现如下图所示的报错,Convergence problem。spice是为线性电路设计的,例如运算放大器、线性电源等,不是专门仿真开关电路的。在瞬态仿真时,仿真器是要不断迭代求解的,开关快速的跳变,容易在迭代式出现不收敛的问题。,由于时间步长减少,会消耗更多的计算机内存,如果运行多次内存消耗过大,会报“Out of memory”.解决方法是:报错工程,重启软件,内存重新计算。

miaoxiaokeji的博客 2299

Oracle函数

概述ORACLE函数系列:Oracle常见函数大全Oracle-分析函数之连续求和sum(…) over(…)Oracle-分析函数之排序值rank()和dense_rank()Oracle-分析函数之排序后顺序号row_number()Oracle-分析函数之取上下行数据lag()和lead()数值型函数返回绝对值 abs(x)ABS(X) 【功能】返回x的绝对值 【参数】x,数字型表达式 【返回

小工匠 4万+

别再死记硬背了!用Python+Matlab/Simulink手把手带你理解PID控制器的‘稳、快、准’

本文通过Python编程和Matlab/Simulink仿真,深入解析PID控制器的‘稳、快、准’三大核心指标,帮助读者直观理解PID控制的实现原理与参数整定技巧。内容涵盖经典控制理论和自动控制原理,提供实战案例和高级调参技巧,适合工业自动化领域的学习者和工程师。

weixin_42551227的博客 369

oracle today函数,oracle日期函数集锦

一、 常用日期数据格式1.Y或YY或YYY 年的最后一位,两位或三位SQL> Select to_char(sysdate,'Y') from dual;TO_CHAR(SYSDATE,'Y')--------------------7SQL> Select to_char(sysdate,'YY') from dual;TO_CHAR(SYSDATE,'YY')-----------...

weixin_36219842的博客 1342

深入解析luckyExcel处理xlsx与xls文件的实战技巧

本文深入解析了使用luckyExcel库在前端处理.xlsx与.xls文件的实战技巧。针对.xlsx文件,可直接调用API转换;对于老旧的.xls格式,则需结合SheetJS进行预处理。文章详细介绍了核心API的使用、两种格式的处理流程、数据提取方法以及性能优化建议,为开发在线Excel编辑应用提供了完整解决方案。

cherry的博客 818

Doris数据过期策略:自动清理历史数据

在数据的世界里,就像我们的房间会堆满各种东西一样,数据库也会积累大量的数据。随着时间的推移,很多历史数据可能不再经常被使用,但它们却占据着宝贵的存储空间。Doris是一款强大的数据库,为了让它能更高效地运行,合理地管理数据,我们就需要一种方法来自动清理那些不再需要的历史数据。本文的目的就是详细介绍Doris的数据过期策略,让大家知道如何利用这个策略来实现自动清理历史数据。范围涵盖了从基本概念到实际操作的各个方面。本文会先介绍一些和Doris数据过期策略相关的术语,让大家对一些专业词汇有个基本的了解。

软件工程实践的博客 556

Oracle日期函数集锦

Oracle日期函数集锦(一)一、 常用日期数据格式1.Y或YY或YYY 年的最后一位,两位或三位SQL> Select to_char(sysdate,'Y') from dual;TO_CHAR(SYSDATE,'Y')--------------------7SQL> Select to_char(sysdate,'YY') from dual;TO_CHAR(SYSDATE,'YY')---------------------07SQL> Select to_char(sysdate,'YYY')

俊哥 740

【ACP】2025-最新-疑难题解析- 练习一汇总

他们对您的方案比较满意,作为一个特别看重用户体验的创业公司,他们有一个比较担心的问题:在后端云服务器 ECS 实例相对空闲时,可能会触发减少 ECS 实例的伸缩活动,这时候运行在即将移出伸缩组的 ECS 实例上的应用会被终止,那么发起这些应用的用户的体验会变差。:在使用阿里云的负载均衡 SLB 实例时,做了如下健康检查的配置:响应超时时间为 5 秒,健康检查间隔为 2 秒,不健康阈值为 3,健康阈值为 3,即对于确认一个后端服务器 ECS 实例是健康的,需要连续三次得到正常响应。以下说法哪一项是正确的?

jundao1997的专栏 326

oracle日期函数集锦

一、 常用日期数据格式 1.Y或YY或YYY 年的最后一位,两位或三位 SQL&gt; Select to_char(sysdate,'Y') from dual; TO_CHAR(SYSDATE,'Y')--------------------7 SQL&gt; Select to_char(sysdate,'YY') from dual; TO_CHAR(SYSDATE,'YY')-...

duyouhua1214 124

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

oracle日期函数有效,Oracle日期函数集锦

Oracle日期函数集锦(一)一、 常用日期数据格式1.Y或YY或YYY 年的最后一位,两位或三位SQL> Select to_char(sysdate,'Y') from dual;TO_CHAR(SYSDATE,'Y')--------------------7SQL> Select to_char(sysdate,'YY') from dual;TO_CHAR(SYSDATE,'...

weixin_36211428的博客 147

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

oracle 函数集锦

oracle的函數很多﹐特整理出來﹕ abs(m)m的绝对值mod(m,n)m被n除后的余数power(m,n)m的n次方round(m[,n])m四舍五入至小数点后n位的值(n缺省为0)trunc(m[,n])m截断n位小数位的值(n缺省为0) 字符函数: initcap(st)返回st将每个单词的首字母大写,所有其他字母小写lower(st)返回st将每个单词的字母全部小...

weixin_30517001的博客 88

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

oracle函数集锦

单行函数 字符函数 concat 连接 || 显示dname和loc中间用-分隔 select deptno,dname||'----'||loc from dept; dual哑元表 没有表需要查询的时候 可以用它 select 'Hello World' from dual; sele...

shenbobolgd的博客 118

Oracle 一些函数集锦

1.查询table 用Oracle的数据字典即可: SELECT t.COLUMN_NAME FROM USER_TAB_COLUMNS t where t.TABLE_NAME='TESTSUPPORT';

anrry2558的专栏 457
上一篇: 悉数僵尸网络:知己知彼 百战不殆
下一篇: 实例剖析:网络环路轻视不得(组图)
WAST
博客等级 码龄25年 85粉丝 160原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值