oracle数据库常用操作

来源:互联网 发布:单片机与arm的异同 编辑:程序博客网 时间:2024/05/18 01:33

一:oracle数据库建库操作

--删除表空间
DROP TABLESPACE TSOA_D INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE TSOA_D_TEMP INCLUDING CONTENTS AND DATAFILES;
--删除用户
drop user ncrsj_oa cascade;

/*分为四步,注意修改文件所在路径为你本地保存路径*/
/*第1步:创建临时表空间 */
create temporary tablespace TSOA_D_TEMP 
tempfile 'E:\oradata\orcl\TSOA_D_TEMP.dbf'
size 200m 
autoextend on 
next 200m maxsize UNLIMITED
extent management local; 
 
/*第2步:创建数据表空间  */
create tablespace TSOA_D
logging 
datafile 'E:\oradata\orcl\TSOA_D_data.dbf'
size 200m 
autoextend on 
next 200m maxsize UNLIMITED
extent management local; 
 
/*第3步:创建用户并指定表空间  */
create user ncrsj_oa identified by password
default tablespace TSOA_D
temporary tablespace TSOA_D_TEMP; 
 
/*第4步:给用户授予权限  */
grant connect,resource,dba to ncrsj_oa;

 

二:查询oracle用户实例名:

select name from v$database

 

三:查询表空间使用情况:

 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size

FROM dba_tablespaces t, dba_data_files d

WHERE t.tablespace_name = d.tablespace_name

GROUP BY t.tablespace_name;

 

四:清空数据库的数据:

 truncate table+ 表名;

 

五:创建索引查询脚本,增加查询效率
-- 索引搜索的相关脚本
-- system用户登录进去给ctxsys解锁赋权
alter user ctxsys account unlock;
-- system用户登录进去给当前用户赋权
grant execute on ctx_ddl to xynsh(当前数据库用户名,记得修改);
grant execute any procedure to xynsh(当前数据库用户名,记得修改);

-- 当前用户登陆进去以下脚本按照顺序依次拷贝执行(切忌不能一下全部拷贝进去执行,在SQL模式下执行就好)--------------------------------------------------------

-- 1.创建词法分析器
BEGIN
    CTX_DDL.CREATE_PREFERENCE('CONTENT_LEXER', 'chinese_vgram_lexer');
END;

-- 2.创建可自动同步的索引
create index search_idx on T_OA_INFOPUBLISH_ARTICLES(ARTICLES_ARTICLECONTENT) INDEXTYPE IS CTXSYS.CONTEXT parameters('lexer CONTENT_LEXER sync(on commit)');


-- 3.同步和优化索引的存储过程
create or replace procedure p_lexer_movie is
begin
 ctx_ddl.sync_index('search_idx');
 ctx_ddl.optimize_index('search_idx','FULL');
end;


-- 4.每隔一天定期同步和优化索引
declare  
      job_id   pls_integer;
begin
sys.dbms_job.submit(job => job_id,
                      what => 'p_lexer_movie;',
                      next_date => SYSDATE,
                      interval => 'TRUNC(SYSDATE+1)');
     
end;

begin
sys.dbms_job.submit(job => :job,
what => ‘DPC_EXCUTE_HOUR;’,
next_date => to_date(‘01-08-2006 16:20:00’, ‘dd-mm-yyyy hh24:mi:ss’),
interval => ’trunc(sysdate,’‘hh’‘) + 1/24+20/(60*24)’
commit;
end;

六:oracle数据库文件导入导出:

导出通常有两种方式,一种是直接在CMD命令里面直接操作,输入:exp userName/password@数据库实例名 file=“文件名”,注意,数据库实例名不是对方的实例名,而是你通过转化之后,建立你跟服务器之间的连接通信的实例名,就比如:对方服务器上的实例名为oracle,你本地的服务实例名为orcl,然后你通过连接之后取的实例名为orc,那就应该是写成expuserName/password@orc  file="文件名",因为导出的时候oracle能识别你本地的服务,识别不到服务器的服务(即oracle),所以只能通过连接适配之后才能导出;

同理导入操作,在CMD上输入imp userName/password@数据库实例名 file=“文件名”full=y, ignore=y    ,其中full=y代表全局库导入,ignore=Y代表忽略警告信息。

第二种是直接在plsql里面操作,右键导入导出。

以上oracle数据库中常用到,记录一下,可能不全面,请勿见怪。

 

 

0 0
原创粉丝点击