1.分页
select t2.*
from (select rownum row, t1.* from your_table where rownum < ?) t2
where t2.row > ?
2.查看oracle数据库的某个表上已经建立了那些索引
select index_name from dba_indexes where table_name='your_table';
3.如果表中有数据后给表增加约束会出现“无效的alter table选项”错误
alter table emp add constraint emp_pk primary key(empno);
改为:
alter table emp modify(empno int primary key);
4.增加/删除列
alter table emp add newCol varchar2(30);
alter table emp drop column newCol;
5.autotrace
(1)set autotrace off 此为默认值,即关闭Autotrace
(2)set autotrace on explain 只显示执行计划
(3)set autotrace on statistic 只显示执行的统计信息
(4)set autotrace on 包含2,3两项内容
(5)set autotrace traceonly 与on相似,但不显示语句的执行结果。
6.设置列宽
col column_name format a30
7.改变会话隔离等级
alter session set isolation_level = serializable
8.V$session taddr ,paddr 分别对应 v$transaction addr,V$process addr
9.select count(*) from emp ;
如果建立索引,可以直接从索引得到答案。否则会全表扫描。
10.利用dbms_metadata.get_ddl查看DDL语句 select dbms_metadata.get_ddl('TABLE','EMP') from dual;
FUNCTION get_ddl (
object_type IN VARCHAR2,
name IN VARCHAR2,
schema IN VARCHAR2 DEFAULT NULL,
version IN VARCHAR2 DEFAULT 'COMPATIBLE',
model IN VARCHAR2 DEFAULT 'ORACLE',
transform. IN VARCHAR2 DEFAULT 'DDL'
) RETURN CLOB;
注意如果使用sqlplus需要进行下列格式化,特别需要对long进行设置,否则无法显示完整的SQL
set pages 999
set long 90000