Oracle常用函数

删除表的字段

alter table 表名  drop column 字段名

 

修改一个表字段的长度

alter table 表名 modify 字段名 varchar2(40)

 

删除整个表的所有数据

TRUNCATE TABLE 表名  要比delete快很多。

 

查询数据库有没有被锁住

select t2.username,  t2.sid,t2.serial#,t2.logon_time,t3.sql_text
from v$locked_object t1,v$session t2,v$sqltext t3
where t1.session_id=t2.sid
and t2.sql_address=t3.address
order by t2.logon_time

 

清除锁
alter system kill session 'sid,serial#'

 

Lpad(String a,int length,String addString)

作用:把addString添加到a的左边,length 是返回值的长度。
例子

  A : SQL> select lpad('test',8,0) from dual;
  LPAD('TEST',8,0)
    ----------------
  0000test
 
  B: select lpad('test',8) from dual;
  LPAD('TEST',8)
           --------------
  test 注:不写最后一个参数,函数会默认在返回值左边加一个空格。

  C: SQL> select lpad('test',2,0) from dual;
  LPAD('TEST',2,0)
  ----------------
  te

  D:SQL> select lpad('test',3) from dual;
  LPAD('TEST',3)
  --------------
  tes

 

distinct(去除重复的数据)

select distinect 字段名 from 表名

 

nvl

nvl(expr1, expr2) -> expr1NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致

nvl (expr1, expr2, expr3) -> expr1不为NULL,返回expr2;为NULL,返回expr3expr2expr3类型不同的话,expr3会转换为expr2的类型null。

if (expr1, expr2)  -> 相等返回NULL,不等返回expr1

 

CONCAT

连接两个字符串;

SQL> select concat(010-,88888888)||23 tel from dual;

结果:010-8888888823

 

 INITCAP

返回字符串并将字符串的第一个字母变为大写;

SQL> select initcap(smith) upp from dual;

结果:Smith

 

INSTR(C1,C2,I,J)

在一个字符串中搜索指定的字符,返回发现指定的字符的位置;

C1 被搜索的字符串

C2 希望搜索的字符串

I 搜索的开始位置,默认为1

J 出现的位置,默认为1

SQL> select instr(oracle traning,ra,1,2) instring from dual;  

结果:9

 

LOWER

返回字符串,并将所有的字符小写

SQL> select lower(AaBbCcDd)AaBbCcDd from dual;

结果:aabbccdd

 

 SUBSTR(string,start,count) 

取子字符串,start开始,count

SQL> select substr(13088888888,3,8) from dual;

结果:08888888

REPLACE(string,s1,s2)

string 希望被替换的字符或变量

s1 被替换的字符串

s2 要替换的字符串

SQL> select replace(he love you,he,i) from dual;

结果:i love you

 translate(string,string,string)

translate的主要作用是提取,替换字符串,其作用有时候和replace差不多.具体看下面的例子

select translate('liyan4h123ui','#liyanhui','#') from dual

结果:4123

select translate('asadad434323', '#0123456789','#') from dual

结果:asadad

select TRANSLATE('kkaxksx', 'kx', '12') from dual

结果:11a21s2

dbms_output.put_line

在存储过程中打印输出信息时用。只限于pl/sql里执行存储过程。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值