新建表空间
表空间名字可以先打开sql文件搜索tablespace查看表空间名是什么
#在oracle服务器上以sysdba身份登录
sqlplus / as sysdba
#永久表空间创建,datafile可以指定表空间物理文件位置
#大小 500M,每次 5M 自动增大,最大不限制
create tablespace test_tablespace datafile 'testfile.dbf' size 100M autoextend on next 5M maxsize unlimited;
#临时表空间创建
create temporary tablespace test_template_tablespace tempfile 'test_tempfile.dbf' size 10m;
新建用户
用户名可以先打开sql文件搜索table查看用户名是什么
#新建用户并指定登录密码,同时指定表空间
create user test identified by 123456 default tablespace test_tablespace temporary tablespace test_template_tablespace;
高版本的oracle普通用户前面要价c##,如果不带c##可以执行如下命令
alter session set "_ORACLE_SCRIPT"=true;
#新建完用户后再给改回来
alter session set "_ORACLE_SCRIPT"=false;
给用户赋予权限
#给用户赋予权限
grant connect,resource,dba to test;
#给用户赋予sysdba权限,imp命令需要sysdba身份导入
也可以手动给用户指定表空间
# 可以将tablespace表空间分配给指定用户来管理
ALTER USER test QUOTA UNLIMITED ON test_tablespace;
# 指定默认表空间
ALTER USER test DEFAULT TABLESPACE test_tablespace;
登录
#登录测试
conn test/123456;
#查看当前登录用户sql: select user from dual;或者命令
show user
#查看当前用户的表空间
select username,default_tablespace from user_users;
#查看当前实例名
select name from v$database;
#退出登录
exit
导入sql
导入sql表结构文件
#解决中文报错ORA-01756: quoted string not properly terminate问题
set nls_lang=american_america.ZHS16GBK
#sqlplus登录账户
sqlplus test/123456
#导入sql文件,@后面跟着sql文件的路径,回车,导入数据;
@D:/test.sql;
#提交数据
commit;
如果导入中文报错ORA-01756: quoted string not properly terminated
导入dmp数据文件
imp命令需要用户是sysdba权限。
imp "'test/123456 as sysdba'" file=D:\test.dmp full=y ignore=y;
imp命令要求用户有sysdba权限。
conn sys/orcl@orcl as sysdba
grant sysdba to test container=all;
因为dmp是sys导出的,所以导入时导入了sys用户下面,没有导入到test用户下面(即使表空间相同,表是属于各自的用户的,所以内容看到不一致)。
清除刚才导入的表和数据
如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~