oracle常用语句整理
来源:互联网 发布:js 多时区夏令时切换 编辑:程序博客网 时间:2024/06/05 08:05
1,导入导出
1,在运行(win+r)中直接exp命令根据提示导出(导入相似imp)
2,exp 用户名/密码@本地监听实例名 file=路径.dmp buffer=8192 full=n log=路径.log
imp 用户名/密码@本地监听实例名 file=路径.dmp buffer=8192 full=n log=路径.log
(导入时的表空间必须和导出时表空间名称相同否则导入不全)
1.删除表中某一列
alter table tablename(表明) drop column columnname(列名).
2.截取字符串
substr(string,n,m)
string 字符窜,
n 截取开始位置
m 取几位。
3.把字符串转化为数字类型
to_number('123')=123;
4.把数字类型转化为字符串
to_char(123)='123'
5.oracle 中的字符连接用||。
6.oracle 中赋值用:=,判断是否相等用=.
7.获取字符串中某个字符的位置instr('abc@a','@');
8.根据年和月份获得当前季度的sql语句:select to_char(to_date(concat('2010','8'),'yyyymm'),'Q') from dual或者知道年月拼成
的字符串时直接用select to_char(to_date('201008','yyyymm'),'Q') from dual
9.CONCAT() 的语法如下:
CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起
10.oracle中进行大小写转化
select upper('abc') from dual;
select lower('ABC') from dual;
11.union 或union all 是纵向连接,union是进行排序的效率低,union all 不进行排序效率比较高.
12.left join (左连接) 是横向连接的.
13.删除表中重复的记录(多个字段的)
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
14.如果根据rownum来更新表中的收据,使用如下的sql语句
update tab_test a set a.id='1' where a.rowid in (select r from (select t.*,rownum rn,rowid r from tbl_test) where rn>1000 and rn<2000);
其中1000和2000为更新数据的范围.之所以用rowid因为他在oracle中表示某行数据的唯一标识,即存在数据库中的物理地址.
如果根据rownum来删除数据,用法基本和上面的一样.就是把update换成delete就OK了.
15.oracle 中解决百分比问题的sql语句
SELECT DECODE (TRUNC (1/100),0, REPLACE (1/100, '.', '0.'),TO_CHAR (1/100)) FROM DUAL;
只要在1/100的地方替换成自己需要的百分数就可以了。
DECODE(TO_CHAR(MOD(a.percnt, 1)),
'0.00',
TO_CHAR(a.percnt * 100) || '%',
TO_CHAR(ROUND(a.percnt * 100, 2), '99990.00') || '%')
只要在a.percnt的地方替换成自己需要的百分数就可以了。
16. oracle 存储过程打印错误信息
dbms_output.put_line(substr(sqlerrm,0,200));
17.在一个内在的异常中,SQLCODE返回Oracle错误的序号,而SQLERRM返回的是相应的错误消息,错误消息首先显示的是错误代码。
18.当truncate 一张表遇到ora-02266时
先执行alter table 表名 disable primary key cascade;再turncate接下来在执行 alter table 表名enable primary key
19.oracle case when的用法
SELECT col1, col2,
CASE
WHEN col3 > 1 AND col3 <2
THEN '1'
WHEN col3 > 2 AND col3 <3
THEN '2'
WHEN col3 > 3 AND col3 <4
THEN '3'
ELSE '4'
END mylevel
FROM table1
注意点:
1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名
20. 根据索引查找表名
select * from user_ind_columns where index_name = '***'
- oracle常用语句整理
- oracle常用语句整理
- Oracle常用sql语句整理
- oracle ddl语句常用语句整理
- Oracle维护常用SQL语句整理一
- Oracle维护常用SQL语句整理三
- Oracle维护常用SQL语句整理二
- Oracle常用语句及时整理归纳
- 关于oracle常用语句的一些整理
- 待整理--Oracle修改表结构常用语句
- 数据库-oracle常用SQL语句整理(持续更新中)
- Oracle数据库常用Sql语句(整理中)
- Oracle系统表整理+常用SQL语句收集
- 常用sql语句整理
- 常用SQL语句整理
- 常用语句 整理
- MySql常用语句整理
- MySQL常用语句【整理】
- VC 关闭应用程序发出的声音
- JVM的装载
- 读 Beginning Android Games 2nd Edition (一) 创建读取文件IO的工具类
- Windows Server 2003远程桌面突破2用户限制
- 【木头Cocos2d-x 025】状态机篇(第04章) --事件驱动,你想象不到的强大
- oracle常用语句整理
- 百度Web前端笔试和面试
- UVa 10589 - Area
- blocks 学习
- iphone开发 图片选择 处理 上传
- Linux 环境进程间通信(六):套接口
- termios 详解
- 源IP、MAC和目的IP、MAC
- jQuery 表单验证