http://www.mamicode.com/info-detail-2481866.html
sql语句
system用户登陆
查看表空间和存放位置
select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;
查看所有表空间的大小
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
查看未使用的表空间大小
select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;
清理屏幕
clear screen
查看服务端编码
select userenv('language') from dual;
本地机器添加系统变量NLS_LANG,变量值为:服务端完整的编码类型即可解决显示不出中文的问题
查询指定表前100行的记录
select * from 表名 where rownum < 101
用truncate、delete都可以清空表中数据。
SQL如下:
truncate table [表名];
delete from [表名];
delete与truncate的区别:
delete:会产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments。
truncate: 是DDL操作,不产生rollback,速度快。
查看所有表空间大小,使用情况,使用率的sql语句
SELECT a.tablespace_name "表空间名",
total "表空间大小",
free "表空间剩余大小",
(total - free) "表空间使用大小",
total / (1024 * 1024 * 1024) "表空间大小(G)",
free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
执行上述sql语句即可查看所有的表空间名称,大小,使用情况。前提是执行者需要有dba权限。
修改oracle服务端的编码类型https://www.linuxidc.com/Linux/2017-12/149915.htm,需要具有sysdba权限
查询临时表空间
select c.tablespace_name,
to_char(c.bytes/1024/1024/1024,'99,999.999') total_gb,
to_char( (c.bytes-d.bytes_used)/1024/1024/1024,'99,999.999') free_gb,
to_char(d.bytes_used/1024/1024/1024,'99,999.999') use_gb,
to_char(d.bytes_used*100/c.bytes,'99.99') || '%'use
from (select tablespace_name,sum(bytes) bytes
from dba_temp_files GROUP by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool GROUP by tablespace_name) d
where c.tablespace_name = d.tablespace_name;
1,创建表空间
2,
3,创建表
4,插入数据
5,定义导出目录
6,导出全库
7,创建表空间
8,导入全库