您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页oracle常用创建语法

oracle常用创建语法

来源:意榕旅游网
1, 创建用户

语法:create user ODITRG identified by ODITRG (default tablespace users);

给用户赋予权限:grant connect,resource to ODITRG; 收回权限:revoke dba from ODITRG

删除用户 drop user user01 (CASCADE); cascade表示删除该用户下的对象 修改密码把create换成alter即可

三种角色:CONNECT 连接角色 只能查看

RESOURCE 资源角色 有建表触发器的权限

DBA 管理员,有任何权限

当出现某用户连着无法删掉该用户时,需要先杀死进程

select sid, serial#, username from v$session;查看用户连接情况 alter system kill session '_sid, _serial#'; 杀掉进程,其中 _sid, _serial# 是 Command 1 查询出的结果。

2,创建表空间

system登录,创建表空间,

SQL> create tablespace ts_cdcpub datafile 'F:\\oracle\\BItablespace\\OracleData\s_

cdcpub.dbf' size 32M autoextend on next 32m maxsize 1024m extent management local; 接着创建用户。

Create User UserName Identified by Password Default TableSpace StationSpace;

给用户授权。

Grant Connect,Resource,DBA to UserName;

扩展表空间 ALTER TABLESPACE BI ADD DATAFILE 'd:\\2.dbf ' SIZE 2048M; 新增数据文件可以使用TOAD

扩展数据文件alter database datafile 12 resize 13312m;

查看表空间 select * from V$TABLESPACE

查看表和表空间的关系 select username, default_tablespace from dba_users;

查看某用户下的所有表 select owner,object_name from dba_objects where owner='ggs' 3,创建DBLINK

create public database link source_db connect to system identified by supcon using 'source_db'; public表示公有dblink, using ‘source_db’ 配置了的远程数据库实例名

删除DBLINK drop public database link source_db

查看dblink select owner,object_name from dba_objects where object_type='DATABASE LINK' 管理员权限下

查看详细 select * from all_db_links

4,字符集

查看数据库字符集select userenv('language') from dual

更改客户端字符集regedit—machine—software—orcale—NLS_LANG

5,序列

创建 Create sequence incomekey increment by 1 start with 1000 maxvalue 99999999 (nocycle nocache)

删除 drop sequence incomekey

使用 下一个值 incomekey.nextval,当前值 incomekey.currval 查看序列 select * from user_sequences 修改序列当前值比较复杂

6,转移数据文件 方法一:(该法只能移动自创数据文件)

1) 手动拷贝要转移的数据数据文件'd:\\OracleData\\GWTABLE42.DBF'到新的位置'E:\\OracleData\\GWTABLE42.DBF'。

2) 把数据文件所属的表空间Offline,在SQLPLUS里运行如下命令: alter tablespace GWTABLE offline;

3) 修改表空间文件路径alter database rename file '旧文件路径' to '新文件路径'; ALTER DATABASE RENAME FILE 'D:\\OracleData\\GWTABLE42.DBF' to 'E:\\OracleData\\GWTABLE42.DBF';

4) 当执行重命名命令后,ORACLE会认为数据库文件损坏,提示:“需要恢复介质” shutdown immediate;--关闭数据库

startup mount;--以归档模式启动数据库,不打开数据库 recover datafile 'E:\\OracleData\\GWTABLE42.DBF'; --介质恢复 salter database open;

5) 把表空间Online,这样就可以了 alter tablespace GWTABLE online;

6) 查看数据文件和表空间及状态

select file_name,tablespace_name,status from dba_data_files;

附:查看每个表空间大小

Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name

方法二:用此方法,可以移动任何表空间的数据文件。 1). 关闭数据库:

2).用操作系统命令移动数据文件:

– 将数据文件 ‘test.ora’ 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下: $ mv /ora/oracle/data1/test.ora /ora/oracle/data2 3). 将数据库启动到mount下 SQL>STARTUP MOUNT;

SQL> ALTER DATABASE RENAME FILE ‘/ora/oracle/data1/test.ora’ TO ‘/ora/oracle/data2/test.ora’; 可能需要介质恢复,参照上一种方法 4). 打开数据库:.

SQL> ALTER DATABASE OPEN;

7, 日志归档修改

1)将数据库启动到mount模式下

Shutdown immediate start mountup 2)修改日志模式

SQL> alter database archivelog;(非归档模式 noarchivelog;) 3)打开数据库 alter database open

附:查看日志工作模式 archive log list,

查看归档日志空间show parameter db_recovery_file_dest 默认情况下,归档日志在闪回区,只有2G空间可用

修改日志归档控件 alter system set db_recovery_file_dest_size=5368709102 (这里为5G 5x1024x1024x1024=5G)

修改日志归档路径 alter system set log_archive_dest_1='location=/u01/archivelog' scope=both;

8, 创建同义词

创建: create public synonym table_name for user.table_name; 可以是序列等其他对象 删除: drop public synonym table_name;

查看同义词 SELECT * FROM ALL_SYNONYMS WHERE SYNONYM_NAME='S'

9, exp/imp

oracle 的exp/imp命令用于实现对数据库的导出/导入操作; 1.导出

set NLS_LANG=AMERICAN_AMERICA.US7ASCII(在注册表里做)

exp 命令:exp system/supcon@source_db tables=MEDREC.PAT_MASTER_INDEX file= D:\est.dmp log=d:\est.log(在CMD中做)

该命令可以将远程数据导到本地 2.用ultraedit编辑dmp文件

修改第一行:1,2字节(0001)为0354 (按UE标号来) 修改第四行:2,3字节(0001)为0354 3.导入

set NLS_LANG=AMERICAN_AMERICA.US7ASCII

imp 命令:imp system/supcon@biuser240 file=d:\est.dmp fromuser=MEDREC touser=ggs tables=PAT_MASTER_INDEX (表结构已创建则加ignore=y,最好关掉归档,最好到服务端上操作) 10, 查看和杀进程

select sid, serial#, username from v$session;查看用户连接情况 alter system kill session '_sid, _serial#'; 杀掉进程,其中 _sid, _serial# 是 Command 1 查询出的结果。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务