Sample
表空间:IMPTEMP
表:Roles 、Users
通过PL/SQL导出的数据库脚本
-----------------------------------------------------
-- Export file for user IMPTEMP --
-- Created by Administrator on 2010-1-29, 14:14:25 --
-----------------------------------------------------
spool sample.log
prompt
prompt Creating table ROLES
prompt ====================
prompt
create table IMPTEMP.ROLES
(
ROLENAME NVARCHAR2(50) not null,
ROLEXML NCLOB
)
tablespace IMPTEMP
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
alter table IMPTEMP.ROLES
add constraint ROLES_PRIMARY_KEY primary key (ROLENAME)
using index
tablespace IMPTEMP
pctfree 10
initrans 2
maxtrans 25 ......
当ORACLE 归档日志满了后,将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入ORACLE。
一、首先删除归档日志物理文件,归档日志一般都是位于archive目录下,AIX系统下文件格式为“1_17884_667758186.dbf”,建议操作前先对数据库进行备份,删除时至少保留最近几天的日志用于数据库恢复。
二、把归档日志的物理文件删除后,我们就可以正常登入ORACLE了,但是还没完全把归档日志删除干净,ORACLE的controlfile中仍然记录着这些archivelog的信息,在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,接下去我们要做的就是这个工作。
我们利用RMAN进行删除操作,操作步骤如下:(window客户端系统为例)
1.指定数据库实例
C:\Documents and Settings\Administrator>SET ORACLE_SID =orcl
2.连接数据库
C:\Documents and Settings\Administrator>RMAN TARGET SYS/sysadmin@orcl
3.查看归档日志的状态
RMAN> list archivelog all;
4.手工删除归档日志文件
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
&nb ......
根据用户导出语句:
1.数据库导出
exp system/jade@JADE_166.111.134.26 file=d:\jade.dmp statistics=none
说明:
syste是用户名
jade是密码
JADE_166.111.134.26是SID标示
file=d:\jade.dmp 是导出文件的路径及文件名
2.数据库导入
imp system/jade@JADE_166.111.134.26 file=d:\jade.dmp fromuser=system touser=alen
说明:
syste是用户名
jade是密码
JADE_166.111.134.26是SID标示
file=d:\jade.dmp 指定导入文件的路径
fromuser=system touser=alen 从用户system导入alen用户
附:oracle导出参数详解
通过输入 EXP 命令和用户名/口令,您可以
后接用户名/口令的命令:
例程: EXP SCOTT/TIGER
或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”
按照不同参数。要指定参数,您可以使用关键字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例程: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明(默认) 关键字 &nbs ......
一、建立链接服务器
有人喜欢调用系统过程来建立,但我个人对系统过程没有特别的学习 ,所以用的是界面设置,当然有兴趣也可以研究一下的,因为可以把SQL执行导出来。
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'TEST2', @srvproduct=N'ORCL', @provider=N'OraOLEDB.Oracle', @datasrc=N'TEST2'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'rpc', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'query time ......
一、建立链接服务器
有人喜欢调用系统过程来建立,但我个人对系统过程没有特别的学习 ,所以用的是界面设置,当然有兴趣也可以研究一下的,因为可以把SQL执行导出来。
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'TEST2', @srvproduct=N'ORCL', @provider=N'OraOLEDB.Oracle', @datasrc=N'TEST2'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'rpc', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'TEST2', @optname=N'query time ......
示例一:delete from emp;
实例二:truncate table emp;
当使用delete删除时,虽然删除了表中的所有数据,但是没有释放表所占的空间,如果用户确定要删除表中所有数据,使用实例二语句速度更快。delete语句可以回退,但truncate语句操作不能回退,执行的时候要多加注意这一点。 ......
使用子查询插入数据:
示例一:insert into employee (empno,ename,sal,deptno)
select empno,ename,sal,deptno from emp
where deptno=20;
示例二:insert /*+APPEND*/ into employee (empno,ename,sal,deptno)
select empno,ename,sal,deptno from emp
where deptno=20;
尽管执行结果一样,但第二条语句使用/*+APPEND*/来表示采用直接装载方法可以使执行速度加快。
使用子查询修改数据:
示例一:select job,sal,comm from emp where ename='SMITH';
update emp set job='check',sal=2200,comm=200
where ename='SCOTT';
示例二:update emp set (job,sal,comm)=(
select job,sal,comm from emp where ename='SMIT ......