ORACEL 主要指令及查询一览表

一 以下是一些重要的查询sql
--查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from dba_users;
--查看你能管理的所有用户
select * from all_users;
--显示sid
select instance_name from V_$INSTANCE;
--查询主键
select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P';
--日志查询
select * from v$logfile;
--审计查询
select * from dba_audit_trail;
--显示数据库的版本
SELECT comp_name,version FROM dba_server_registry;


二 如果通过正常登录的方式进入数据库 则可以通过以下方式进入数据库
在cmd窗口中:
sqlplus /nolog
进入 sqlplus 后:
conn / as sysdba;

--删除用户语法
drop user myUser cascade;
--创建用户的语法
create user myUser identified by myPwd default tablespace users temporary tablespace temp;
--赋权限的语法
grant dba,unlimited tablespace to myUser;

三 备份还原指令语法
exp myUser/myPwd@sid file=D:\backup\oracle20110110.dmp owner=myUser
imp myUser/myPwd@sid file=D:\backup\oracle20110110.dmp fromuser=myUser touser=myPwd buffer=9999999 ignore=y

如果是不同版本的备份还原可以需要用到的语法详细说明如下
1、在11g服务器上,使用expdp命令备份数据
EXPDP USERID='SYS/cuc2009@cuc as sysdba' schemas=sybj directory=DATA_PUMP_DIR dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0

用户名是sys密码是cuc2009,数据库sid是cuc,要到出的用户名是sybj,要导入 到10.2.0.1.0版本的Oracle数据库中去。aa.dmp和aa.log将会在11g的dpdump目录中生成,例如我的11g装在了E盘下 面,于是aa.dmp将会在E:/app/Administrator/admin/cuc/dpdump目录下被生成。

2、在10g服务器上,使用impdp命令恢复数据
假定10g装在了e:/tools目录下,于是我将aa.dmp文件拷贝到了E:/tools/admin/cucf/dpdump目录下。
IMPDP USERID='SYS/cuc2009@cucf as sysdba' schemas=sybj directory=DATA_PUMP_DIR dumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0

关于定时器的语法如下:
--创建定时器 每晚12点钟执行远程提交
declare
jobno number;
submit_state number;
begin
    dbms_job.submit(jobno,'zfb_pkg.zf_pro_remotesubmit;',to_date('16-04-2012 14:41:00', 'dd-mm-yyyy hh24:mi:ss'),'sysdate+1');
    commit;
end;

--如果要销毁定时器
declare
    cursor cur is select job from user_jobs;
    c_job number;
begin
    open cur;
    fetch cur into c_job;
    while cur%found loop
       dbms_job.remove(c_job);
       commit;
       fetch cur into c_job;  
    end loop;
    close cur;
end;

关于dblink的相关语法如下:
--创建远程数据库连接
create database link linktepuser
connect to tepuser identified by tepuser
using '
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 218.242.216.194)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = SHCMSCG)
    )
  )
';
--如果要取消远程连接
drop database link linktepuser

--使用语法
select * from 表名@linktepuser


关于递归查询的语法如下:
select * from dep start with upperdepid is null connect by prior depid=upperdepid;

关于分页查询的语法如下:
select * from dep where rowid in (
  select rd from (
  select rowid rd,rownum rn,dep.* from dep dep where rownum<=5
  ) where rn>=3
);

猜你喜欢

转载自lgywindows.iteye.com/blog/1844379