您的位置:首页 > 数据库 > Oracle

oracle 10g 备份与还原小结(三)及其它一些小问题

2009-08-12 23:01 369 查看
1.闪回特性演示与回收站 机制

保护现场。
正常关机
startup mount;
alchive log查看是否开启归档模式。
alter database flashback on;//开启闪回机制,在mount状态。
alter database open;//开启数据库

alter session set nls_data_format='yyyy-mm-dd:hh24:mi:ss'(rman不喜欢空格)
echo $NLS_DATA_FORMAT(验证一下)
在.bashrc中
rman target /
flashback database to time ""(闪回到某个时间)
alter data open;(错)
/**********只读方式打开**************
alter database open readonly;
selet * from tab;

alter database open resetlogs

flashback database to restore point p2;(闪回到某个断点)

purged(不进回收站)

show recyclebin
查看备份信息
show paramte recyclebin
显示参数的开、关

drop table tab purged
flashback table tab to before drop;

附注:

1.替换变量
@: 每次都问
@@:仅问一次。

2物化视图

物化视图对于前台数据库使用者来说如同一个实际的表,具有和一般表相通的如select等操作,而其实际上是一个视图,一个由系统实现定期刷新其数据的视图(具体刷新时间在定义物化视图的时候已有定义),使用物化视图更可以实现视图的所有功能,而物化视图确不是在使用时才读取,大大提高了读取速度,特别适用抽取大数据量表某些信息以及数据链连接表使用.具体语法如下:

物化视图对于前台数据库使用者来说如同一个实际的表,具有和表相通的一般select操作,而其实际上是一个视图,一个定期刷新数据的视图(具体刷新时间在定义物化视图的时候已有定义),使用物化视图可以实现视图的所有功能,而物化视图确不是在使用时才读取,大大提高了读取速度,特别适用抽取大数据量表某些信息以及数据链连接表使用.具体语法如下:
CREATE MATERIALIZED VIEW an_user_base_file_no_charge
REFRESH COMPLETE START WITH SYSDATE
NEXT TRUNC(SYSDATE+29)+5.5/24
as
select distinct user_no
from cw_arrearage t
where (t.mon = dbms_tianjin.getLastMonth or
t.mon = add_months(dbms_tianjin.getLastMonth, -1))
drop materialized view an_user_base_file_no_charge;

3%~5%还好。
ERP物化视图(更新它)。速度快。

3.隐式游标 SQL%NOTFOUND
影响行 SQL%ROWCOUNT

dbms.output.put_line("hello world!").

4.显示游标(正常对游标的处理)
declare
cursor emp_cur is
select last_name,salary from hr.employess;

begin
open emp_cur;//打开游标查询
fetch emp_cur into v_ename,v_salary ;
while emp_cur%FOUND
loop
if(v_sale>1500 and v_hiredate>to_date('01-FEB-1988','dd-mon-yyyy') then
dbms.output.put_line("");
fetch emp_cur into v_ename,v_salary ;
end loop;
close emp_cur;//关闭游标,释放内存。
end;

5.二维数据类型的定义
declare
type table1 is table of
employess.lastname%type index by binary_integer;//申明二维数组
type table2 is table of
employess.lastname%type index by binary_integer;//申明二维数组
v1 table1;
v2 table2;
对于游标的另外一种处理方式
for crecord in c1
loop
i=i+1;
v1(i)=crecord.lastnamed
end loop;

for i in 1..15
loop
dbms_outpout.putline("");
end loop;
v_count=c1%rowcount

6. 加载远程共享信息(网上邻居)
mount -t cifts -o usrname=oracle,password=oracle 源地址,目标地址。
7.图片存储机制

A先创建存储该图片信息的表
CREATE TABLE hr.tpic (c1 VARCHAR2 (5) NOT NULL, image BLOB NOT NULL) tablespace example;

select * from hr.tpic ;

B创建图片指向
CREATE OR REPLACE DIRECTORY d1 AS '/home/oracle/pic';

C授权

grant read,write on DIRECTORY d1 to hr;

D创建存储过程
CREATE OR REPLACE PROCEDURE hr.prc_bfile1 (p1 VARCHAR2,p2 VARCHAR2)
IS
v_f BFILE;//bfile v_f(文件名,目录)
v_b blob;//blob
BEGIN
INSERT INTO hr.tpic(c1,image) values(p1, EMPTY_BLOB() ) RETURN image into v_b;
//其中 image 是指(字段名)

v_f := BFILENAME('D1', p2);////D1指向 directory d1 as '/home/oracle/pic'
DBMS_LOB.FILEOPEN (v_f, DBMS_LOB.FILE_READONLY);
DBMS_LOB.LOADFROMFILE (v_b, v_f, DBMS_LOB.GETLENGTH (v_f));
DBMS_LOB.FILECLOSE (v_f);
commit;
END;

E测试数据提交
begin
hr.prc_bfile1('CC','3.jpg');
commit;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: