首先注意:我參考網上使用的sysdba模式(normal)登陸的,其他的模式建不了用戶(個人沒有進行其他模式的表空間嘗試,如有人嘗試歡迎補充,感激不盡)
表空間相當於表的容器(一下所有的操作都適用於oracle10g):
--建表空間
create tablespace SOA --soa是表空間的名字
datafile 'D:\ a.dbf' size 50m -- 'D:\ a.dbf' 表空間的存儲路徑
autoextend on next 50m maxsize 20480m ----autoextend on 自動增長
extent management local;
--創建用戶默認分配soa表空間
create user shgbyp identified by "111111"
default tablespace SOA;
//記錄一個錯誤
剛開始我是用的建用戶的語句是create user shgbyp identified by 111111 default tablespace SOA;
差別就在於 密碼處 沒有使用雙引號
報了一個oracle10g專屬的錯誤ORA-00988: 口令缺失或無效
據了解這個錯誤是10g才有的錯誤 所以11g的用戶不用擔心。
--給用戶授權
grant connect,resource,dba to shgbyp;
--導入導出
imp/exp shgbyp/111111@orcl file="e:\20170310.dmp" full=y ignore=y
--相應的刪除表空間
drop tablespace SOA including contents and datafiles
--刪除用戶
drop user shgbyp cascade
這里強調一下:刪除了用戶shgbyp,只是刪除了該用戶下的schema objects,不刪除分配給用戶的表空間。就應為表空間只是給你用戶使用的,你用戶沒了只代表這個表空間少了一個用戶使用!
附加:高版本oracle向低版本導入導出數據庫:
從高版本導出:
expdp 用戶名/密碼@數據庫實例名 directory=DATA_PUMP_DIR dumpfile=導出的文件名.dmp logfile=導出的日志名.log version=10.2.0.1.0
導入到低版本:impdp 低版本用戶名/密碼@orcl directory=DATA_PUMP_DIR dumpfile=導出的文件名.DMP logfile=導出的日志名.log version=10.2.0.1.0 table_exists_action=replace remap_schema=高版本用戶名:低版本用戶名
或許你需要知道DATA_PUMP_DIR 這個變量的值:那么
請查看 select * from dba_directories 就能明白啦~~