oracle 创建删除用户、角色、表空间和导入导出数据
增删改查导入导出功能 用户手册
增删改查导入导出功能用户手册【用户手册】增删改查导入导出功能1. 前言在现代信息化社会,数据管理和处理是各行各业都不可缺少的重要环节。
为了更方便、高效地进行数据操作,许多软件和应用程序都提供了增删改查导入导出功能。
本篇文章将详细介绍这些功能的使用方法和注意事项,帮助用户更好地利用这些功能来管理和处理数据。
2. 增加数据增加数据是指向系统中添加新的数据记录。
一般情况下,用户可以通过输入相关字段的值来新增数据。
在使用增加数据功能时,一些常见的注意事项包括:2.1 确定数据的格式:在进行数据输入时,用户需要根据预设的数据格式准确输入数据,确保其符合系统的要求。
2.2 检查输入数据的合法性:在输入数据之前,用户应该对数据进行合法性检查,确保输入的数据符合相关规范和约束条件。
2.3 验证新增结果:在完成数据输入后,用户应该及时验证新增结果,确保数据已成功添加到系统中。
3. 删除数据删除数据是指从系统中移除某个或某些特定的数据记录。
在使用删除数据功能时,需要注意以下几点:3.1 确认要删除的数据准确性:在执行删除操作之前,用户应该确认所要删除的数据是准确的,避免误删关键数据。
3.2 考虑数据的关联性:在删除某个数据记录之前,用户需要考虑该数据是否与其他数据记录存在关联,以免影响其他相关数据的完整性。
3.3 审核删除结果:在执行删除操作后,用户应该及时审查删除结果,确保被删除的数据已从系统中彻底移除。
4. 修改数据修改数据是指对系统中已经存在的数据记录进行更新。
在使用修改数据功能时,需要注意以下几点:4.1 确定需要修改的数据记录:在进行数据更新之前,用户需要明确要修改哪些数据记录,避免错误修改或遗漏。
4.2 检查数据更新的合理性:在数据更新之前,用户应该核实新数据的合理性,并确保其满足相关的规范和要求。
4.3 验证修改结果:在完成数据更新后,用户应验证修改结果,确保数据已按照预期进行了修改。
5. 查询数据查询数据是指根据用户指定的条件从系统中获取所需的数据记录。
Oracle中的导入导出表及数据
Oracle中的导入导出表及数据Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能可以构建两个相同的数据库。
1.用plsql实现1.1使用plsql连接oracle,点击工具——导出表1.2选择要导出的表1.3可执行文件在C:\oracle\product\10.2.0\db_1\bin 目录下导出是exp 导入是imp导出的为dmp文件1.4导入文件:点击工具——导入表在导入文件中选择要导入的表确认后点击导入2.用dos命令实现2.1Windows——R——cmd2.2输入dos命令:exp youngtop_us/ail@192.168.0.46/orcl10g file=F:/fileSys.dmp log=F:/fileSys.logstatistics=none tables=file_attach,file_tree,file_permissionps:exp user/password@主机地址file=存储位置log=存储位置statistics=none tables=tablename3.将数据导出到excel表中及将excel表数据导入数据库3.1选中要导出数据的表右键——查询数据3.2选中表中的数据邮件——复制到excel3.3在excel中保存3.4可以不按照数据库中的字段存放顺序,编辑形成Excel表中的数据3.5选中要导入的数据后另存一份txt文档3.6在plsql中点击工具——文本导入器进入到文本导入器的页面后,先点击“来自文本文件的数据”选项卡,然后点击打开按钮,选择数据录入.txt文件3.7在配置中进行配置如果不将标题名勾选上,则会导致字段名也当做记录被导入到数据库中,影响正确录入3.8点击导入按钮将数据导入oracle数据库中。
Oracle数据库导入导出方法汇总
Oracle数据库导入导出方法:1.使用命令行:数据导出:1.将数据库TEST完全导出,用户名system密码manager导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2.将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3.将数据库中的表inner_notify、notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)4.将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面加上compress=y来实现。
数据的导入:1.将D:\daochu.dmp 中的数据导入TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmpimp aichannel/aichannel@HUST full=y file= d:\data\newsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y 就可以了。
2.将d:\daochu.dmp中的表table1导入imp system/manager@TEST file=d:\daochu.dmp tables=(table1)3.不同名用户之间的数据导入:imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfull.dmplog=c:\orabackup\hkbimp.log;2.plsql:数据导出:TOOLS-Export user objects(用户对象)TOOLS-Export tables(表)数据的导入:TOOLS-Import tablesOracle Import(表) SQL Inserts(用户对象)也可以将用户对象的语句拷贝出来,粘贴到Command Window这样的好处是可以看到执行的过程。
oracle数据库导入导出语句
oracle数据库导⼊导出语句
oracle的exp/imp命令⽤于实现对数据库的导出/导⼊操作;exp命令⽤于把数据从远程数据库服务器导到本地,⽣成.dmp⽂件;imp命令⽤于把本地的数据库.dmp⽂件从本地导⼊到远程的oracle数据库中
1 将数据库test完全导出.⽤户名system/manager导出到D:daochu.dmp 代码如下:
exp file=d:daochu.dmp full=y
2.将数据库中system⽤户与sys⽤户的表导出代码如下:
exp file=d:daochu.dmp owner=(system,sys)
3.将数据库中的表table1 table2 导出代码如下:
exp file:= d:daochu.dmp tables=(table1,table2)
4.将数据库中的表table1中的字段filed1以"00"打头的数据导出代码如下;
exp file:=d:daochu.dmp tables=(table1) query="where filed1 like '00%'"
5.将D:daochu.dmp中的数据导⼊到test数据库中代码如下
imp file:=d:doachu.dmp (这样写的肯定会报错,因为数据库中已经存在表了,对该表就不能导⼊)
所以要在后⾯加上ignore=y就可以了
imp file:=d:daochu.dmp ignore=y 就可以了
6.将d:daochu.dmp中的表table1导⼊到test的数据库中
imp file:=d:daochu.dmp tables=(table1);。
oracle 重要语法(建表空间,用户,授权,拼接sql)
documentcount gdfs,--归档份数
f2 initunitname,--单位名称
AUTHOR author,--(作者) ,F9(扫描页数)。
F5 wjys,--文件页数
F3 lrrq,--(录入日期)
JDRQ jdrq,--(鉴定日期)。
(select substr(TZM ,1,(select INSTR(TZM ,'\',-1) from dual)-1 ) from dual ) FILE_PATH,--附件路径
alter system kill session 'sid,serial';
alter system kill session '7,19';
alter system kill session '9,11';
alter system kill session '70,13';
alter system kill session '72,348';
documentcount gdfs,--归档份数
f2 initunitname,--单位名称
AUTHOR author,--(作者) ,F9(扫描页数)。
F5 wjys,--文件页数
drop user dev cascade;
DROP TABLESPACE LIS INCLUDING CONTENTS AND DATAFILES;
Oracle如何断开用户连接 搜出该用户的session的SID,SERIAL码,然后kill掉
select sid,serial# from v$session where username='user_name';
Java导入导出Oracle
使用java程序实现对oracle的导入和导出并创建表空间、用户、制定用户的默认表空间、给用户授权package com.bingfeng.cron.job;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import erUtil;import erUtilException;public class JavaOracle{public static void main(String[] args) {expFile();// createTablespace("back2");// createUser("back2");// impFile("back2");// grant("leftf3");}/**得到一个oralce的连接*/public static Connection getConnection() {try {Class.forName("oracle.jdbc.driver.OracleDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}Connection conn = null;try {conn = DriverManager.getConnection(UserUtil.getInstance().getUrl(),UserUtil.getInstance().getUsername(), UserUtil.getInstance().getPassword());} catch (UserUtilException e) {System.out.println("jdbc.property 文件解析失败!");e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}// 从oracle导出public static void expFile() {String[] cmds = new String[3];String commandBuf = "exp cwbak/cwbak@cwerpfile=c://cwbak.dmp log=c://cwbak.log";// String commandBuf = "exp cwuser/cwuser@cwerp// file=e://accbookBak//cwuser.dmp log=e://accbookBak//cwuser.log"; cmds[0] = "cmd";cmds[1] = "/C";cmds[2] = commandBuf.toString();Process process = null;try {process = Runtime.getRuntime().exec(cmds);} catch (IOException e) {e.printStackTrace();}boolean shouldClose = false;try {InputStreamReader isr = new InputStreamReader(process.getErrorStream());BufferedReader br = new BufferedReader(isr);String line = null;while ((line = br.readLine()) != null) {System.out.println(line);if (line.indexOf("????") != -1) {shouldClose = true;break;}}} catch (IOException ioe) {shouldClose = true;}if (shouldClose)process.destroy();int exitVal;try {exitVal = process.waitFor();System.out.print(exitVal);} catch (InterruptedException e) {e.printStackTrace();}}// 导入oraclepublic static void impFile(String tablespaceName) {String[] cmds = new String[3];String commandBuf = "imp system/system@cwerp fromuser=cwbak touser="+ tablespaceName + " file=c://cwbak.dmp ignore=y";cmds[0] = "cmd";cmds[1] = "/C";cmds[2] = commandBuf.toString();Process process = null;try {process = Runtime.getRuntime().exec(cmds);} catch (IOException e) {e.printStackTrace();}boolean shouldClose = false;try {InputStreamReader isr = new InputStreamReader(process.getErrorStream());BufferedReader br = new BufferedReader(isr);String line = null;while ((line = br.readLine()) != null) {System.out.println(line);if (line.indexOf("????") != -1) {shouldClose = true;break;}}} catch (IOException ioe) {shouldClose = true;}if (shouldClose)process.destroy();int exitVal;try {exitVal = process.waitFor();System.out.print(exitVal);} catch (InterruptedException e) {e.printStackTrace();}}//创建表空间public static void createTablespace(String tablespaceName) { Connection conn = null;PreparedStatement ps = null;conn = getConnection();String sql = "create tablespace " + tablespaceName+ " logging datafile" + "'" + tablespaceName + ".dbf'"+ "size 5M extent management local AUTOALLOCATE";System.out.println(sql);try {ps = conn.prepareStatement(sql);ps.executeUpdate();ps.close();conn.close();} catch (SQLException e) {e.printStackTrace();}}// 创建用户并且制定已经创建好的表空间public static void createUser(String userName) {Connection conn = null;PreparedStatement ps = null;try {conn = getConnection();String sql1 = "create user " + userName+ " identified by abc default tablespace " + userName;// +" temporary tablespace " +"t"+userName; 临时表暂时没有用,不使用临时表String sql2 = "grant connect,resource to " + userName;String sql3 = "revoke unlimited tablespace from " + userName;String sql4 = "alter user " + userName + " quota 0 on " + userName;String sql5 = "alter user " + userName + " quota unlimited on "+ userName;// String sql6 = "grant dba to "+ userName;String str[] = new String[5];str[0] = sql1;str[1] = sql2;str[2] = sql3;str[3] = sql4;str[4] = sql5;// str[5] = sql6;for (int i = 0; i < str.length; i++) {ps = conn.prepareStatement(str);ps.executeUpdate();}ps.close();conn.close();} catch (SQLException e) {e.printStackTrace();}}/*** 给具体的某个用户赋增、删、改、查以及dba的权限** @param dbUser*/public static void grant(String dbUser) {Connection conn = null;PreparedStatement ps = null;try {conn = getConnection();String sql1 = "grant select,insert,delete,update on " + dbUser + "表 to 用户";String sql2 = "grant dba to " + dbUser;//赋dba的权限String str[] = new String[20];str[0] = sql1;str[1] = sql2;for (int i = 0; i < str.length; i++) {ps = conn.prepareStatement(str);ps.executeUpdate();}ps.close();conn.close();} catch (SQLException e) {e.printStackTrace();}}}。
oracle数据库导入导出命令
Oracle数据导入导出imp/exp功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)这样你可以把数据导出到本地,虽然可能服务器离你很远。
你同样可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录\$ora10g\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp 中exp system/manager@TEST file=d:\daochu.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3 将数据库中的表table1 、table2导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
oracle创建表空间和用户授权及删除表空间和删除用户命令
imp pobaoa/oa@orcl file=f:\zyoa0916.dmp full=y ignore=y
imp sjsoa/oa@orcl file=f:/bigoatemp.dmp full=y
2、将d:daochu.dmp中的表table1导入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)
select INSTANCEID,NID,TITLE,NODENAME,ASSIGNER,NODEBEGIN,initiatorname,'办理状态'As blzt from view_wf_todo where actor='%USERID%' order by nodebegin desc
sqlplus / as sysdba
default tablespace bigoa
temporary tablespace temp;
//给用户授予权限
grant connect,resource,dba,CTXAPP,create view to swoa;
以后以该用户登录,创建的任何数据库对象都属于user_temp和user_data表空间,这就不用在每创建一个对象给其指定表空间了
oracle创建表空间和用户授权
SYS用户在CMD下以DBA身份登录:
在CMD中打sqlplus/nolog //匿名登录
然后再conn/as sysdba //以dba身份登录
//创建临时表空间
create temporary tablespace bigoa_temp
oracle基本操作
oracle基本操作Oracle是一种关系数据库管理系统,它是世界上最受欢迎的企业级数据库。
它被各种企业广泛使用,它的功能非常强大,包括数据安全、访问控制、事务处理、性能优化、数据备份和恢复等。
本文将介绍Oracle的基本操作,包括如何创建、修改和删除表,如何插入、更新和删除数据,以及如何查询和导出数据。
这些操作对于初学者来说非常重要,也是使用Oracle的基础。
1.创建表格在Oracle中,创建表的语法如下:CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... );其中,table_name是要创建的表的名称,column1、column2等是列名,datatype是列的数据类型。
例如,创建一个名为“employees”的表格,并添加列“id”、“name”和“salary”,则可以使用以下命令:CREATE TABLE employees ( id NUMBER(4) NOT NULL, name VARCHAR2(15) NOT NULL, salary NUMBER(7,2), PRIMARY KEY (id) );注意,id和name列设置为NOT NULL,这表示这两列不能为空。
salary列的数据类型为NUMBER,并设置了精度和小数位数。
2.修改表格如果需要修改表格,可以使用ALTER TABLE命令。
例如,如果想向employees表格添加新的列“address”,可以使用以下命令:ALTER TABLE employees ADD address VARCHAR2(50);如果需要删除表格中的列,可以使用以下命令:ALTER TABLE employees DROP COLUMN address;3.删除表格如果需要删除一个表格,可以使用以下命令:DROP TABLE table_name;例如,删除名为“employees”的表格:DROP TABLE employees;如果不小心使用了错误的命令或者删除的表格不是自己想要的,则可以使用RECOVER命令来找回删除的表格。
oracle导入导出详解
总结了oracle的导入导出,希望能帮助大家一. 导出工具exp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binexp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。
2. 导出工具exp交互式命令行方式的使用的例子$exp test/test123@appdbEnter array fetch buffer size: 4096 > 回车Export file: expdat.dmp > m.dmp 生成导出的文件名(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3Export table data (yes/no): yes > 回车Compress extents (yes/no): yes > 回车Export done in ZHS16GBK character set and ZHS16GBK NCHAR character setAbout to export specified tables via Conventional Path ...Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要导出的表名. . exporting table CMAMENU 4336 rows exportedTable(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名nTable(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车Export terminated successfully without warnings.3. 导出工具exp非交互式命令行方式的例子$exp scott/tiger tables=emp,dept file=/directory/scott.dmp grants=y说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\<1600\" file=/directory/scott2.dmp说明:在exp里面加上导出emp的查询条件job='salesman' and sal<1600(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000Mlog=/directory2/username_exp.log参数文件username.par内容userid=username/userpasswordbuffer=8192000compress=ngrants=y说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改filesize指定生成的二进制备份文件的最大字节数(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等) 4. 命令参数说明关键字说明(默认)---------------------------------------------------USERID 用户名/口令FULL 导出整个文件(N)BUFFER 数据缓冲区的大小OWNER 所有者用户名列表FILE 输出文件(EXPDAT.DMP)TABLES 表名列表COMPRESS 导入一个范围(Y)RECORDLENGTH IO 记录的长度GRANTS 导出权限(Y)INCTYPE 增量导出类型INDEXES 导出索引(Y)RECORD 跟踪增量导出(Y)ROWS 导出数据行(Y)PARFILE 参数文件名CONSTRAINTS 导出限制(Y)CONSISTENT 交叉表一致性LOG 屏幕输出的日志文件STA TISTICS 分析对象(ESTIMATE)DIRECT 直接路径(N)TRIGGERS 导出触发器(Y)FEEDBACK 显示每x 行(0) 的进度FILESIZE 各转储文件的最大尺寸QUERY 选定导出表子集的子句下列关键字仅用于可传输的表空间TRANSPORT_TABLESPACE 导出可传输的表空间元数据(N) TABLESPACES 将传输的表空间列表二.导入工具imp1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/binimp导入工具将EXP形成的二进制系统文件导入到数据库中.它有三种模式:a. 用户模式:导出用户所有对象以及对象中的数据;b. 表模式:导出用户所有表或者指定的表;c. 整个数据库:导出数据库中所有对象。
oracle数据库表空间创建导入导出
oracle数据库表空间创建导⼊导出1、表空间创建--删除表空间drop tablespace EVPBDMGIS including contents and datafiles;--删除⽤户drop user EVPBDMGIS cascade;--创建表空间create tablespace EVPBDMGIS datafile 'D:\app\Administrator\oradata\orcl\EVPBDMGIS.DBF' size 500m reuse autoextend on next 16m maxsize unlimited logging extent management local segment space management auto;--创建⽤户设置默认表空间create user EVPBDMGIS identified by EVPBDMGISdefault tablespace EVPBDMGIStemporary tablespace temp;--设置⽤户权限grant connect,resource,exp_full_database,imp_full_database to EVPBDMGIS ;--查询当前连接⽤户--select username,sid,serial# from v$session--清除连接⽤户--alter system kill session '223,50256'2、导⼊、导出--导出表结构exp sjcg/sjcg@orcl owner=sjcg file=D:\sjcg0727schema.dmp rows=n compress=n--导出命令:exp ⽤户名/密码@数据库 owner=⽤户名 file=⽂件存储路径(如:F:\abcd.dmp)exp sjcg/sjcg@orcl file=D:\sjcg_ev_20190124.dmp owner=sjcg--导⼊命令:imp ⽤户名/密码@数据库 fromuser=⽤户名 touser=⽤户名 file=d:\cu.dmp ignore=yimp hzuhvproj/hzuhvproj@orcl fromuser=hzuhvproj touser=hzuhvproj file=D:\Temp.dmp ignore=y--导⼊指定表imp sjcg/sjcg@orcl tables=(ev_t_bc_lineproperty,ev_t_bc_mapobject,ev_t_bc_mapobjectproperty,ev_t_bc_station)file=D:\Temp\SJCG0122schema.dmpcu/mycu@db:导⼊的数据库登陆(⽤户名/密码@数据库)fromuser:⽂件的指定⽤户touser:指定导⼊到当前登录的数据库某个⽤户file:需要导⼊的数据⽂件ignore:是否忽略创建错误--登录不区分⼤⼩写alter system set sec_case_sensitive_logon=false--解锁⽤户ALTER USER username ACCOUNT UNLOCK;。
oracle数据库用户创建、权限分配,以及导入,导出数据
下面数据库所用的版本为ORACLE 9I (9.2.0),安装数据库时,数据库系统会创建一个数据库实例,其中:安装目录选为:\oracle,数据库名与数据库SID号都输入:ora9i数据库安装完成后,有两个系统级的用户:1、system 默认密码为:manager2、sys 默认密码为:change_on_install在安装的数据库目录中找到\oracle\product\9.2\bin 中的sqlplus程序,运行:./sqlplus system/manager@ora9i用system用户创建自己的用户、权限;sql语句如下:1、创建用户:create user username identified by pwd default tablespace users Temporary TABLESPACE Temp;2、用户授权grant connect,resource,dba to business;3、提交:commit;如上面所述利用sqlplus以username 用户登陆,专输入:@创建数据库的脚本名称.sql回车,即可创建数据库中的表、视图、存储过程等。
如上面所述利用sqlplus以username 用户登陆,假设有两个数据库 9.0.1 与 9.0.21.导出数据exp system用户/system的密码@服务器名 owner用户名=“oradial ” fi le="oradial.dmp"说明:(1) 如果该命令是在本地执行,则不用指定服务器名(2) owner用户名,通过sys用户的登录所创建的用户名。
同时授予的权限包括connect , dba , resource ,还要创建表空间。
(3) system用户名,owner用户名是9.0.1数据库中的用户2.导入数据imp system用户/system的密码@服务器名 file=oradial.dmp fromuser(用户名)=oradial touser(用户名)=abc说明:(1) 如果该命令是在本地执行,则不用指定服务器名(2) touser用户名,通过sys用户的登录所创建的用户名。
oracle19c之导入、导出及脚本
oracle19c之导⼊、导出及脚本 记录⼀下oracle两种常⽤的导⼊导出⽅式:exp、imp;spool、SQL*Loader及其脚本。
⼀、exp与imp导⼊导出 1、exp导出操作exp c##sl/123456 buffer=64000 file=./full.sql full=y --导出整个数据库exp c##sl/123456 buffer=64000 file=./sl.sql owner=c##sl --导出⽤户c##sl下的对象exp c##sl/123456 buffer=64000 file=./book.sql tables=book --导出book表exp c##sl/123456 buffer=64000 file=./book.sql tables=book,book2; --导出book、book2表 2、imp导⼊操作exp c##sl/123456 buffer=64000 file=./book.sql tables=bookdrop table book;imp c##sl/123456 buffer=64000 file=./book.sql tables=book --需要先删除表,再导⼊,否则报错exp c##sl/123456 buffer=64000 file=./book.sql tables=bookimp c##sl/123456 buffer=64000 ignore=y file=./book.sql tables=book --只会导⼊主键不冲突的数据,冲突的忽略exp c##sl/123456 buffer=64000 file=./sl.sql owner=c##slimp c##sl/123456 buffer=64000 ignore=y file=./sl.sql full=y --导⼊sl.sql中的全部⽂件imp c##sl/123456 buffer=64000 ignore=y file=./sl.sql tables=book,book2 --导⼊sl.sql中的表book、与book2 说明:tables指定导⼊或导出的表;full=y表⽰导⼊或导出全部;ignore=y表⽰跳过主键冲突执⾏ ⼆、spool、SQL*Loader导⼊导出 准备表与数据CREATE TABLE book(id varchar2(10) NOT NULL,name varchar2(50) DEFAULT NULL,author varchar2(20) DEFAULT NULL,price decimal(10,0) DEFAULT NULL,update_time date DEFAULT NULL,create_time date DEFAULT NULL,is_deleted varchar2(1) DEFAULT NULL,PRIMARY KEY (id));insert into book values ('1','c##','sl',23.4,to_date('2011-11-11 11:11:11','YYYY-MM-DD HH24:MI:SS'),to_date('2011-11-11 11:11:14','YYYY-MM-DD HH24:MI:SS'),1);insert into book values ('2','c##','sl',23.4,to_date('2011-11-11 11:11:11','YYYY-MM-DD HH24:MI:SS'),to_date('2011-11-11 11:11:14','YYYY-MM-DD HH24:MI:SS'),1);insert into book values ('3','c##','sl',23.4,to_date('2011-11-11 11:11:11','YYYY-MM-DD HH24:MI:SS'),to_date('2011-11-11 11:11:14','YYYY-MM-DD HH24:MI:SS'),1); 1、spool导出操作 创建sql⽂件book_spoolout.sqlset echo offset heading offset feedback offset pagesize 0set linesize 1000spool book.datselect id||','||name||','||author||','||price||','||to_char(update_time,'YYYY-MM-DD hh24:mi:ss')||','||to_char(create_time,'YYYY-MM-DD hh24:mi:ss')||','||is_deleted from book;spool off 登录sqlplus,执⾏@导出⽂件[root@localhost tmp]# sqlplus c##sl/123456SQL> @book_spoolout.sql; 导出数据⽂件book.dat如下:1,c##,sl,23,2011-11-11 11:11:11,2011-11-11 11:11:14,12,c##,sl,23,2011-11-11 11:11:11,2011-11-11 11:11:14,13,c##,sl,23,2011-11-11 11:11:11,2011-11-11 11:11:14,1 说明: b、这⾥登录数据库⽬录与sql⽂件、导出⽂件⽬录⼀致; c、如果导出⽬录没有写权限,会报错“⽆法创建 SPOOL ⽂件 "book.dat"当前未假脱机”,注意赋权; d、要把控制⽂件写⼊⽂件中保存,如果直接复制到sqlplus中执⾏,导出的⽂件中⾸尾⾏含有其他命令或sql语句; 2、SQL*Loader导⼊操作 创建控制⽂件book.ctlload datainfile book.datinto table booktruncatefields terminated by ","(ID,NAME,AUTHOR,PRICE,UPDATE_TIME DATE "YYYY-MM-DD HH24:MI:SS",CREATE_TIME DATE "YYYY-MM-DD HH24:MI:SS",IS_DELETED) 执⾏导⼊命令,将上⾯的book.dat导⼊数据库sqlldr userid=c##sl/123456 control=book.ctl data=book.dat 注意: a、这⾥的控制⽂件与数据⽂件在同⼀⽬录下 b、truncate是删除原表数据,还有insert、append、replace等 c、fields terminated by是字段分隔符 三、脚本 可以看到spool、sql loader的导⼊导出还是挺复杂的,下⾯整理出通⽤性更强的脚本 1、导出 准备表与数据CREATE TABLE music(id varchar2(10) NOT NULL,name varchar2(50) DEFAULT NULL,author varchar2(20) DEFAULT NULL,price decimal(10,2) DEFAULT NULL,update_time varchar2(19) DEFAULT NULL,create_time varchar2(19) DEFAULT NULL,is_deleted varchar2(1) DEFAULT NULL,PRIMARY KEY (id));insert into music values ('1','你好你好','sl',23.4,'2011-11-11 11:11:11','2011-11-11 11:11:14','1');insert into music values ('2','你好你好','sl',23.4,'2011-11-11 11:11:11','2011-11-11 11:11:14','1');insert into music values ('3','你好你好','sl',23.4,'2011-11-11 11:11:11','2011-11-11 11:11:14','1'); 创建脚本oddpe#!/bin/shif [ $# -lt 5 ];thenecho "param error: please reference example:"echo "oddp music ./music.dat c##sl/123456 -f'|!?|' -r'@#$'"exit 1fiTABLE=${1}DATAFILE=${2}USERPASS=${3}shiftshiftshiftwhile getopts "f:r:" argdof) FIELD=${OPTARG};;r) ROW=${OPTARG};;?) ROW=1;;esacdoneDATAPATH=`dirname ${DATAFILE}`DATANAME=`basename ${DATAFILE}`SPOOLOUTSQL=${DATAPATH}/${TABLE}_spoolout.sqlTODAY=`date '+%Y%m%d'`LOGFILE=${DATAPATH}/${TABLE}_unload_${TODAY}.logsqlplus -S ${USERPASS} <<eof >>${LOGFILE}set serveroutput on verify off trimspool on timing off feedback offset numwidth 50 pagesize 0 linesize 1000spool ${SPOOLOUTSQL}declarev_colcount number :=0;begindbms_output.put_line('select');for col in (select column_namefrom user_tab_columnswhere table_name = upper('${TABLE}')order by column_id)loopif v_colcount = 0thendbms_output.put(chr(9) || col.column_name);elsedbms_output.put_line(chr(9) || '||' || '''${FIELD}''' || '||' );dbms_output.put(chr(9) || col.column_name);end if;v_colcount :=v_colcount + 1;end loop;dbms_output.put('||' || '''${ROW}''');dbms_output.new_line;dbms_output.put_line('from ' || '${TABLE};');end;/spool offexiteofecho "`date +%T`: 开始导出数据!" 2>&1|tee -a ${LOGFILE}sqlplus -S ${USERPASS} <<eofset echo off heading on feedback off pagesize 0 linesize 1000set termout off trimspool on numwidth 24 arraysize 1000 verify off newpage 0 space 0spool ${DATAFILE}.tmp@${SPOOLOUTSQL}spool offexiteofif [ $? -ne 0 ];thenecho "`date +%T`: 导出${TABLE}失败!" 2>&1|tee -a ${LOGFILE}exit -1else#去除中间空⾏grep . ${DATAFILE}.tmp>${DATAFILE}rm -f ${DATAFILE}.tmpecho "`date +%T`: 导出${TABLE}完毕!" 2>&1|tee -a ${LOGFILE}exit 0fi 执⾏⽰例,导出music表的数据到music.dat⽂件,以|!?|分隔字段,以@#$结束⼀⾏./oddpe music /usr/local/myroom/script/tmp/music.dat c##sl/123456 -f'|!?|' -r'@#$' 2、导⼊ 创建脚本oddpi#!/bin/shif [ $# -lt 5 ];thenecho "param error: please reference example:"echo "oddpi music ./music.dat c##sl/123456 -f'|!?|' -r'@#$'"exit 1fiTABLE=${1}USERPASS=${3}shiftshiftshiftwhile getopts "f:r:" argdocase ${arg} inf) FIELD=${OPTARG};;r) ROW=${OPTARG};;?) ROW=1;;esacdoneDATAPATH=`dirname ${DATAFILE}`DATANAME=`basename ${DATAFILE}`CTLFILE=${DATAPATH}/${TABLE}.ctlTODAY=`date '+%Y%m%d'`LOGFILE=${DATAPATH}/${TABLE}_load_${TODAY}.logecho "`date +%T`: 创建控制⽂件" 2>&1|tee -a ${LOGFILE}sqlplus -S ${USERPASS} <<eof >>${LOGFILE}set serveroutput on verify off trimspool on timing off feedback offset numwidth 50spool ${CTLFILE}declarev_colcount number :=0;begindbms_output.put_line('load data');dbms_output.put_line('infile ${DATANAME} '|| '"str ''${ROW}\n''" ');dbms_output.put_line('into table '||'${TABLE}');dbms_output.put_line('truncate');dbms_output.put_line('fields terminated by '|| '''${FIELD}''');dbms_output.put_line('trailing nullcols');dbms_output.put_line('(');for col in (select column_name,casewhen data_type = 'NUMBER' then column_name || ' "nvl(rtrim(:' || column_name || '),' || '0.00' || ')"' else column_name || ' "nvl(rtrim(:' || column_name || '),' || ''' ''' || ')"'end xfrom user_tab_columnswhere table_name = upper('${TABLE}')order by column_id)loopif v_colcount = 0thendbms_output.put(chr(9) || col.x);elsedbms_output.put_line(',');dbms_output.put(chr(9) || col.x);end if;v_colcount :=v_colcount + 1;end loop;dbms_output.new_line;dbms_output.put_line(')');end;/spool offset feedback oneofecho "`date +%T`: 开始导⼊数据!" 2>&1|tee -a ${LOGFILE}sqlldr userid=${USERPASS} control=${CTLFILE} log=${LOGFILE} data=${DATAFILE} direct=trueif [ $? -ne 0 ];thenecho "`date +%T`: 导⼊${TABLE}失败!" 2>&1|tee -a ${LOGFILE}exit -1elseecho "`date +%T`: 导⼊${TABLE}完毕!" 2>&1|tee -a ${LOGFILE}exit 0fi 执⾏脚本,导⼊数据./oddpi music /usr/local/myroom/script/tmp/music.dat c##sl/123456 -f'|!?|' -r'@#$' 说明:对导⼊脚本中dbms_output.put_line('infile ${DATANAME} '|| '"str ''${ROW}\n''" ');的解析 load data的str属性表⽰数据的换⾏符,⽐如3^^你好你好^^sl^^23.4^^2011-11-11 11:11:11^^2011-11-11 11:11:14^^1!!2^^你好你好^^sl^^23.4^^2011-11-11 11:11:11^^2011-11-11 11:11:14^^1!!1^^你好你好^^sl^^23.4^^2011-11-11 11:11:11^^2011-11-11 11:11:14^^1!! a、"\n"是⾃带的换⾏符,因为数据⼿动换⾏了,所以str后⾯除了指定的换⾏符"!!"还有"\n" b、有些⽂件中⼿动的换⾏符不是"\n"⽽是"\r\n",这时对应语句改为......"str '!!\r\n'"...... c、str后⾯还可以跟X+转成raw类型的字符,下⾯的语句执⾏效果相同。
Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
说明:在创建数据库时输入的密码,是修改系统默认的密码,以system和sysman等系统默认身份登录时要输入的密码就是修改后的密码(创建数据库时输入的密码)如果要创建新的用户就必须以system或者sysman(这二者的权限最大)的身份登录后才可创建创建用户格式:create user 用户名identified by 密码(例如:create user cht id entified by cht;)创建完成后,必须分配权限,否则连不上数据库和sqlplus。
因此要做:grant connect,resource,dba to cht;这样数据库就可以通过cht/cht连上了。
那些select,update,delete,insert的权限就不必分配了,因为每个用户默认都有这些基本权限。
命令行方式连接数据库的方法:开始==》运行==》cmd方式一:输入sqlplus,回车输入用户名:system,回车输入密码:orcl,回车方式二:输入sqlplus system/orcl@orcl,回车(system是用户名,orcl是密码,@后面的or cl是库的名字)(数据库安装完成后,有两个系统级的用户:1)system 默认密码为:manager2)sys 默认密码为:change_on_install)创建用户前必须要先建好临时表空间和数据表空间两个表空间,否则用系统默认的表空间不好。
//创建临时表空间create temporary tablespace zfmi_temp tempfile 'D:\oracle\oradata\zf mi\zfmi_temp.dbf' size 100m autoextend on next 32m maxsize 2048m extent management local;说明:1、zfmi_temp 表空间的名字2、D:\oracle\oradata\zfmi\ 存放数据库文件的地方,一般是安装数据库后有控制文件,数据文件和日志文件的文件夹,再加上要创建表空间的名字+dbf(数据文件)3、100M 表空间的初始大小4、32M 表空间自动增长的大小5、2048M 表空间最大的大小//创建数据表空间create tablespace zfmi logging datafile 'D:\oracle\oradata\zfmi\zfmi.d bf' size 100m autoextend on next 32m maxsize 2048m extent manage ment local;//创建用户并指定表空间create user zfmi identified by zfmi default tablespace zfmi temporary t ablespace zfmi_temp;//给用户授予权限grant connect,resource dba to zfmi;(dba:指定所有权限)到这一步新建一个用户的工作就完成了。
使用navicat为Oracle创建用户并导入dmp文件及导出dmp文件
使⽤navicat为Oracle创建⽤户并导⼊dmp⽂件及导出dmp⽂件
使⽤navicat为Oracle创建⽤户并导⼊dmp⽂件及导出dmp⽂件
创建表空间:
1、使⽤带有dba权限的⽤户登录oracle,最开始的⽤户是system和sys
2、新建表空间,为表空间设置⼤⼩(⼤⼩:134217728,下⼀个⼤⼩:131072000,最⼤⼤⼩:34359721984 不选单位)和路径(F:\ORACLE\TABLE),⼀定要开启⾃动扩展on,下⼀个⼤⼩指的是下次扩展⼤⼩
3、创建成功后可以在所填的路径下⾯看到新建的表空间
创建⽤户:
1、在navicat顶部菜单栏点击⽤户,新建⽤户,这⾥注意⽤户名⼀定要是⼤写
2、常规⾥⾯默认表空间选择我们刚建的表空间,不选择的话系统默认users表空间
3、成员属于⾥⾯选择connect和dba,dba是最⾼权限,⼀般情况下都要选择(授予,作为默认)
4、配额⾥⾯对我们刚建的表空间打勾
5、服务器权限选择create session(授予)
6、保存,⽤户创建完毕
导⼊dmp⽂件:(没⽤navicat导⼊过,⼀般选择使⽤命令⾏⽅式或者plsql)
1、打开cmd命令⾏,输⼊如下命令,建议填写⽇志路径,有什么问题⼀⽬了然
imp ⽤户名/密码@localhost:1521/orcl file=dmp⽂件路径 log=⽇志存放路径 full = y
2、这就创建好了,如果表有什么异常的话,查看⽇志,可以单独处理
导出dmp⽂件:
exp ⽤户名/密码@localhost:1521/orcl file=dmp⽂件路径。
Oracle创建表空间
设置和修改表空间属性
2.增加数据文件
【例】在ALTER TABLESPACE语句中使用 ADD DATAFILE子句,可以在本地管理表空 间中增加数据文件,代码如下: SQL> ALTER TABLESPACE OrclTBS01 ADD DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\OrclTB S011.dbf' SIZE 10M; 表空间已更改。
表空间已创建。
创建表空间
创建表空间页面
单击此按钮 保存 输入名称
创建大文件表空 间
设置和修改表空间属性
1.重命名表空间
【例】将表空间OrclTBS02修改为OrclTBS03, 可以使用下面的语句: SQL> ALTER TABLESPACE OrclTBS02 RENAME TO OrclTBS03; 表空间已更改。
SPACE MANAGEMENT子句可定义段
【例】创建手动段管理方式的表空间MyTBS01:
段和数据块管理
数据块是Oracle数据库的最小存储单元,在初始化参数
DB_BLOCK_SIZE中定义了标准数据块的大小。 在创建表空间时,如果不特殊指定,将使用 DB_BLOCK_SIZE中定义的数据作为数据块的大小。 【例】可以在CREATE TABLESPACE语句中使用 BLOCKSIZE子句指定非标准数据块的大小:
表空间已创建。
创建表空间
【例】在创建表空间OrclTBS02时,指定其最小区 间为128KB,代码如下:
SQL> CREATE TABLESPACE OrclTBS02 DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\OrclTBS02.dbf' SIZE 30M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K; 表空间已创建。
Oracle新建用户、角色,授权,建表空间的sql语句
Oracle新建⽤户、⾓⾊,授权,建表空间的sql语句oracle数据库的权限系统分为系统权限与对象权限。
系统权限( database system privilege )可以让⽤户执⾏特定的命令集。
例如,create table权限允许⽤户创建表,grant any privilege 权限允许⽤户授予任何系统权限。
对象权限( database object privilege )可以让⽤户能够对各个对象进⾏某些操作。
例如delete权限允许⽤户删除表或视图的⾏,select权限允许⽤户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。
每个oracle⽤户都有⼀个名字和⼝令,并拥有⼀些由其创建的表、视图和其他资源。
oracle⾓⾊(role)就是⼀组权限(privilege)(或者是每个⽤户根据其状态和条件所需的访问类型)。
⽤户可以给⾓⾊授予或赋予指定的权限,然后将⾓⾊赋给相应的⽤户。
⼀个⽤户也可以直接给其他⽤户授权。
Oracle创建⽤户的语法:Oracle创建⽤户(密码验证⽤户),可以采⽤CREATE USER命令。
CREATE USER username IDENTIFIED BY passwordOR IDENTIFIED EXETERNALLYOR IDENTIFIED GLOBALLY AS ‘CN=user'[DEFAULT TABLESPACE tablespace][TEMPORARY TABLESPACE temptablespace][QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace[,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace[PROFILES profile_name][PASSWORD EXPIRE][ACCOUNT LOCK or ACCOUNT UNLOCK]其中,CREATE USER username:⽤户名,⼀般为字母数字型和“#”及“_”符号。
oracle删除用户及空闲表空间释放空间
oracle删除用户及空闲表空间释放空间第一步:删除过期用户DROP USER colin CASCADE;第二步:查询过期用户相关的表空间是否还有对象SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAMEFROM DBA_SEGMENTSWHERE TABLESPACE_NAME IN(SELECT TABLESPACE_NAMEFROM DBA_TABLESPACESWHERE TABLESPACE_NAME LIKE '%COLIN%')第三步:转移过期用户表空间上的对象到其他表空间ALTER TABLE tab_colin MOVE TABLESPACEcolin_song_tbs;ALTER INDEX idx_tab_colin REBUILD TABLESPACE colin_song_idx_tbs;第四步:查询无对象的表空间SELECT 'DROP TABLESPACE ' ||TABLESPACE_NAME ||' INCLUDING CONTENTS AND DATAFILES;' FROM DBA_TABLESPACESWHERE NOT EXISTS (SELECT 12FROM DBA_SEGMENTSWHEREDBA_SEGMENTS.TABLESPACE_NAME =DBA_TABLESPACES.TABLESPACE_NAME);第五步:删除之把上述查询出来的语句贴到文本编辑里检查下(PS:这里会包含一个temp的临时表空间一定要去掉啊)SQL> drop tablespace STAT_FTFY_CHRGSTAY_DTBS including contents and datafiles;Tablespace droppedSQL> drop tablespace STAT_FTFY_CHRGNEW_WIXTBS including contents and datafiles;Tablespace droppedSQL> drop tablespace STAT_FTFY_CHRGSMR_MIXTBS including contents and datafiles;Tablespace dropped最后去看下你的系统空间应该释放了吧。
oracle存储过程详细介绍(创建,删除存储过程,参数传递等)
oracle存储过程详细介绍(创建,删除存储过程,参数传递等)oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包存储过程和函数也是⼀种PL/SQL块,是存⼊数据库的PL/SQL块。
但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为⽆名块,⽽存储过程和函数是以命名的⽅式存储于数据库中的。
和PL/SQL程序相⽐,存储过程有很多优点,具体归纳如下:* 存储过程和函数以命名的数据库对象形式存储于数据库当中。
存储在数据库中的优点是很明显的,因为代码不保存在本地,⽤户可以在任何客户机上登录到数据库,并调⽤或修改代码。
* 存储过程和函数可由数据库提供安全保证,要想使⽤存储过程和函数,需要有存储过程和函数的所有者的授权,只有被授权的⽤户或创建者本⾝才能执⾏存储过程或调⽤函数。
* 存储过程和函数的信息是写⼊数据字典的,所以存储过程可以看作是⼀个公⽤模块,⽤户编写的PL/SQL程序或其他存储过程都可以调⽤它(但存储过程和函数不能调⽤PL/SQL程序)。
⼀个重复使⽤的功能,可以设计成为存储过程,⽐如:显⽰⼀张⼯资统计表,可以设计成为存储过程;⼀个经常调⽤的计算,可以设计成为存储函数;根据雇员编号返回雇员的姓名,可以设计成存储函数。
* 像其他⾼级语⾔的过程和函数⼀样,可以传递参数给存储过程或函数,参数的传递也有多种⽅式。
存储过程可以有返回值,也可以没有返回值,存储过程的返回值必须通过参数带回;函数有⼀定的数据类型,像其他的标准函数⼀样,我们可以通过对函数名的调⽤返回函数值。
存储过程和函数需要进⾏编译,以排除语法错误,只有编译通过才能调⽤。
创建和删除存储过程创建存储过程,需要有CREATE PROCEDURE或CREATE ANY PROCEDURE的系统权限。
该权限可由系统管理员授予。
创建⼀个存储过程的基本语句如下:CREATE [OR REPLACE] PROCEDURE 存储过程名[(参数[IN|OUT|IN OUT] 数据类型...)]{AS|IS}[说明部分]BEGIN可执⾏部分[EXCEPTION错误处理部分]END [过程名];其中:可选关键字OR REPLACE 表⽰如果存储过程已经存在,则⽤新的存储过程覆盖,通常⽤于存储过程的重建。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 创建删除用户、角色、表空间、导入导出数据库总结
创建新的用户必须以system 或者sysman( 这二者的权限最大) 的身份登录后才可创建,创建用户前须先建好临时表空间和数据表空间两个表空间。
1、创建临时表空间
create temporary tablespace nimeng_temp tempfile D:/oracle/oradata/neusoft/nimeng_temp.dbf' size 100 m autoextend on next 32 m maxsize 2048 m extent management local ;
说明:
1 、nimeng_temp 表空间的名字
2 、D:/oracle/oradata 存放数据库文件的地方,一般是安装数据库后有控制文件,数据文件和日志文件的文件夹, 再加上要创建表空间的名字+dbf( 数据文件)
3 、100M 表空间的初始大小
4 、32M 表空间自动增长的大小
5 、2048M 表空间最大的大小
2、创建数据表空间
create tablespace nimeng logging datafile
'D:/oracle/oradata/neusoft/nimeng.dbf'' size 100 m autoextend on next 32 m maxsize 2048 m extent management local ;
3、创建用户:create user 用户名identified by 密码
例如:create user nim identified by nim ;
创建完成后,必须分配权限,否则连不上数据库和sqlplus 。
4、分配权限:grant connect,resource,dba to nim ; 这样数据库就可以通过nim / nim 连上了。
那些select, update ,delete,insert 的权限就不必分配了,因为每个用户默认都有这些基本权限。
5、创建用户并指定表空间
create user zfmi identified by zfmi default tablespace zfmi temporary tablespace zfmi_temp;
完成。
6、删除用户以及用户所有的对象
drop user zfmi cascade;
cascade 参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数
删除oracle 用户nim 出现下面的错误:
SQL> drop user nim cascade;
drop user nim cascade
*
ERROR 位于第1 行:
ORA-00604: 递归SQL 层1 出现错误
ORA-24005: 必须使用DBMS_AQADM.DROP_QUEUE_TABLE 删除队列表
处理方式:先执行这条语句:alter session set events'10851 trace name context forever,level 2';
再执行:drop user nim cascade; 删除用户nim
7、删除表空间
前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除
drop tablespace nimeng including contents and datafiles cascade constraints ;
including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数
including datafiles 删除表空间中的数据文件
cascade constraints 同时删除tablespace 中表的外键参照
如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。
可使用如下方法恢复:
下面的过程中,filename 是已经被删除的数据文件,如果有多个,则需要多次执行;tablespace_name 是相应的表空间的名称。
$ sqlplus /nolog
SQL> conn / as sysdba;
如果数据库已经启动,则需要先执行下面这行:
SQL> shutdown abort
SQL> startup mount
SQL> alter database datafile 'filename' offline drop;
SQL> alter database open;
SQL> drop tablespace tablespace_name including contents;
8、导入导出命令
Oracle 数据导入导出imp/exp 就相当于oracle 数据还原与备份。
exp 命令可以把数据从远程数据库服务器导出到本地的dmp 文件,imp 命令可以把dmp 文件从本地导入到远处的数据库服务器中。
利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
数据导出
1 将数据库TEST 完全导出, 用户名system 密码manager 导出到D:daochu.dmp 中
exp system/manager@TEST file=d: /daochu.dmp full=y
2 将数据库中system 用户与sys 用户的表导出
exp system/manager@TEST file=d: / daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify 、notify_staff_relat 导出
exp aichannel/aichannel@TESTDB2 file=d:/datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1 中的字段filed1 以"00" 打头的数据导出
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的导出,对于压缩,既用winzip 把dmp 文件可以很好的压缩。
也可以在上面命令后面加上compress=y 来实现。
数据的导入
1 将D:daochu.dmp 中的数据导入TEST 数据库中。
imp system/manager@TEST file=d:daochu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y 就可以了。
2 将d:daochu.dmp 中的表table1 导入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)
基本上上面的导入导出够用了。
不少情况要先是将表彻底删除,然后导入。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。
可以用tnsping TEST 来获得数据库TEST 能否连上。
给用户增加导入数据权限的操作
第一, 启动sql*puls
第二,以system/manager 登陆
第三,create user 用户名IDENTIFIED BY 密码
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd- 进入dmp 文件所在的目录,
imp userid=system/manager full=y file=*.dmp
或者imp userid=system/manager full=y file=filename.dmp。