oracle 常用
一、常用
1、任务计划(job)
- 语法:
- 例
declare
jobno number;
begin
sys.dbms_job.submit(jobno,'PKG_ZJBI_SJTB.PROC_ZJBI_SJTB;',
sysdate + 1 / (24 * 60),
'sysdate + 1 / (24 * 60)',false);
commit;
end;
2、 DBLINK:用于从本地数据库访问另外一个数据库表中的数据。
- 例:
create database link DLInk /*Dlink为名称*/
connect to LC0019999 identified by aaaaaa
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl )
)
)';
注:xx.xx.xx.xx 为IP地址;orcl 为服务名
使用:select 1 from dual@Dlink
错误: ORACLE "ORA--22992:无法使用远程表选择的LOB定位器,database link"
解决办法: 先创建一个临时表,然后把远程的含CLOB字段的表导入到本地的临时表中,再倒入本表。
create global temporary table ZJZHDJB_temp as select * from ZJZHDJB where 1=2; /*创建空的临时表*/
insert into ZJZHDJB_temp select * from ZJZHDJB@Dlink ;
insert into ZJZHDJB select * from ZJZHDJB_temp;
commit;
select * from ZJZHDJB_temp
二、恢复数据:
1、恢复表中误删的数据:
- 1)、查看误删的数据
select * from ZJZHDJB as of timestamp to_timestamp('2015-04-17 22:00:00','yyyy-mm-dd hh24:mi:ss')
注释:ZJZHDJB:误删数据所在的表; 2015-04-17 22:00:00:查看该时间点表中的所有数据。如果此刻表中不包含相关数据,继续缩小时间,直至包含误删的数据
- 2)、恢复数据
flashback table ZJZHDJB to timestamp to_timestamp('2015-04-17 22:00:00','yyyy-mm-dd hh24:mi:ss');
注释:将表恢复至2015-04-17 22:00:00 时间点所包含的数据
- 3)、恢复数据失败执行
当报如下错误时,
执行:alter table ZJZHDJB enable row movement;
这个命令的作用是,允许Oracle 修改分配给行的rowid。在Oracle 中,插入一行时就会为它分配一个rowid,而且这一行永远拥有这个rowid。闪回表处理会对EMP 完成DELETE,并且重新插入行,这样就会为这些行分配一个新的rowid。要支持闪回就必须允许Oracle 执行这个操作。
select * from user_recyclebin WHERE ORIGINAL_NAME='ZJZHDJB' /*误删的表名*/
三、表空间
- 1、查看表空间的大小
select b.file_name 物理文件名,b.tablespace_name 表空间,b.bytes/1024/1024 大小M,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,
substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.bytes
order by b.tablespace_name
- 2、修改大小:
alter database datafile 'F:\CWDATA\CWBASEF003_DAT.DBF' resize 7000M; /*路径为绝对路径*/