WEB开发网
开发学院数据库Oracle ORACLE之常用FAQ V1.0一(构架体系) 阅读

ORACLE之常用FAQ V1.0一(构架体系)

 2006-08-05 11:52:54 来源:WEB开发网   
核心提示: Alter table tablename move [Tablespace new_name Storage(initial 50M next 50M pctincrease 0 pctfree 10 pctused 50 initrans 2) nologging] 移动分区的语法 a

Alter table tablename move

[Tablespace new_name

Storage(initial 50M next 50M

pctincrease 0 pctfree 10 pctused 50 initrans 2) nologging]

移动分区的语法

alter table tablename move (partition partname)

[update global indexes]

之后之后必须重建索引  

Alter index indexname rebuild如果表有Lob段,那么正常的Alter不能移动Lob段到别的表空间,而仅仅是移动了表段,可以采用如下的方法移动Lob段

alter table tablename move

lob(lobsegname) store as (tablespace newts);  

[Q]怎么获得当前的SCN  

[A]9i以下版本  

select max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;  

如果是9i以上版本,还可以通过以下语句获取  

select dbms_flashback.get_system_change_number from dual;  

[Q]ROWID的结构与组成

[A]8以上版本的ROWID组成  

OOOOOOFFFBBBBBBRRR  

8以下ROWID组成(也叫受限Rowid)  

BBBBBBBB.RRRR.FFFF  

其中,O是对象ID,F是文件ID,B是块ID,R是行ID  

如果我们查询一个表的ROWID,根据其中块的信息,可以知道该表确切  

占用了多少个块,进而知道占用了多少数据空间(此数据空间不等于表的分配空间)  

[Q]怎么样获取对象的DDL语句  

[A]第三方工具就不说了主要说一下9i以上版本的dbms_metadata  

1、获得单个对象的DDL语句

set heading off

set echo off

set feedback off

set pages off

set long 90000

select dbms_metadata.get_ddl('TABLE','TABLENAME','SCAME') from dual;  

如果获取整个用户的脚本,可以用如下语句  

select dbms_metadata.get_ddl('TABLE',u.table_name) from user_tables u;

当然,如果是索引,则需要修改相关table到index  

[Q]如何创建约束的索引在别的表空间上  

[A]1、先创建索引,再创建约束  

2、利用如下语句创建  

create table test

(c1 number constraint pk_c1_id primary keyusing index tablespace useridex,c2 varchar2(10)) tablespace userdate;

上一页  1 2 3 4 5 

Tags:ORACLE 常用 FAQ

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接