-----亲测有效------- --一.备份原始数据库库--1.备份空表--在plsql里面执行一下这句话 然后把结果集 再执行一把 再导数据select 'alter table '||table_name||' allocate extent(size 64k);' from tabs t where not exists (select segment_name from user_segments s where s.segment_name=t.table_name);2.在cmd窗
Oracle数据库删除表中的重复数据,只保留其中的一条,以两个字段为例,提供两种方法 ①.直接delete重复的数据 delete from table_name t1 where (t1.col1, t1.col2) in (select col1, col2 from table_name group by col1, col2 having count(*) > 1) and t1.rowid in (select min(rowid) from table_name group by c
1.查看一个表所占的空间大小:SELECT bytes/1024/1024 ||'MB' TABLE_SIZE ,u.* FROM USER_SEGMENTS U WHERE U.SEGMENT_NAME='JK_TEST';2.查看一个表空间所占的实际大小:SELECT SUM(BYTES) / 1024 / 1024 ||'MB' FROM USER_SEGMENTS U WHERE TABLESPACE_NAME = 'DATA01';3.查看一个表空间对应的数据文件:SELECT *
一,操作表及列 1.创建表: CREATE TABLE test (ID int PRIMARY KEY IDENTITY,Name varchar(20) ) 2.删除表 DROP TABLE test 3.重命名表 sp_remane 'oldname','newname' 4.改变列 ALTER TABLE test ADD Family varchar(50),Address varchar(50)//添加列,注意添加多哥列用逗号隔开,不使用括号 ATLTER COLUMN Fami
要求计算某个表所占表空间的大小,网上查了些资料用到了oracle的3个视图.具体sql如下 select segment_name as tablename, round(bytes / (select sum(a.bytes) from dba_data_files a, user_users b ,) from user_segments where segment_name = '表名' 该sql只保留了小数点后3位
TRUNCATE TABLE TbName --TbName是表名 但如果TbName中某些字段与其它表有主外键关系,会报错: 无法截断表 'Plants',因为该表正由 FOREIGN KEY 约束引用. 此时需要先去另一张表删除外键,TRUNCATE后,再加上外键. 删除另外一个表的外键 IF OBJECT_ID(N'[dbo].[外键]', 'F') IS NOT NULL ALTER TABLE [dbo].[另外一个表] DROP CONSTRAINT [外键]; GO 再为另
(1)使用用rowid方法 查询重复数据:select * from person a where rowid !=(select max(rowid) from person b where a.cardid=b.cardid and a.pname=b.pname); 删除重复数据:delete from person a where rowid !=(select max(rowid) from person b where a.cardid=b.cardid and a.p
通过从视图 user_segments的字段 bytes中找到 select SUM(bytes)/1024/1024 from user_segments where segment_name='EMP'; select segment_name,sum(bytes)/1024/1024 as MB from user_segments group by segment_name order by MB desc;
1.查询表中所有数据 select * from 表名; 例:select * from stu; 2.查询的同时修改表中数据 select * from 表名 for update; 例:select * from stu for update; 3.往表中添加数据 insert into 表名(列1,列2...) values(值1,值2...); 例:insert into stu(id,name,age) values(1,'zhangsan',23); 注意:字符串类型要用单引号括起
oracle中的sys用户(修改密码) (2011-07-01 09:18:11) 转载▼ 标签: it 分类: oracle 概念: SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用于数据库管理的用户.在数据库安装完之后,应立即修改SYS,SYSTEM这两个用户的口令,以保证数据库的安全. 可以用三种方法修改口令:sqlplus / as sysdba;1.sql> alter user sys identified by 123456 2.sql>grant connect
Oracle的闪回特性之恢复truncate删除表的数据 SQL> show parameter flashback NAME TYPE VALUE------------------------------------ ----------- ------------------------------db_flashback_retention_target integer 1440 flas