首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建批处理脚本来自动使用用户名和密码将DB转储导入Oracle 11g数据库?

问如何创建批处理脚本来自动使用用户名和密码将DB转储导入Oracle 11g数据库?
EN

Stack Overflow用户
提问于 2014-10-15 08:47:08
回答 1查看 5.8K关注 0票数 1

我需要为以下任务创建一个批处理脚本:

  1. 删除oracle用户
  2. 创建用户的Oracle用户
  3. 从sqlplus cammand提示符授予dba权限
  4. 导入Oracle 11g转储

并从命令提示符中导入Oracle 11g转储。

在正常情况下,我总是遵循这些步骤:

步骤1:打开命令提示符并启动SQL*Plus:

代码语言:javascript
复制
  C:\user>sqlplus sys/sys@MySID as sysdba;

步骤2:删除现有用户

代码语言:javascript
复制
 SQL:> DROP USER TEST CASCADE; 

步骤3:创建用户并授予dba权限,

代码语言:javascript
复制
 SQL:> CREATE USER TEST identified by test123 default tablespace users temporary tablespace temp quota unlimited on users;
 SQL:> GRANT dba to TEST;
 SQL:> COMMIT;
 SQL:> EXIT;

步骤4:返回命令提示符,在新创建的用户上导入oracle转储。

代码语言:javascript
复制
imp userid ='TEST/test123@MySID' file='D:\Dumps\Oracle\Imported\exp_TEST1_at_MYDEV_20121108.dmp'  log='D:\Dumps\OracleLog\NewImp160913_run.log' rows=y full=y ignore=y; 

使用上述步骤,我可以删除用户,创建用户并成功导入oracle 11g转储。

我需要使用批处理脚本来完成这些任务。

EN

回答 1

Stack Overflow用户

发布于 2014-10-16 01:02:30

作为SQLPLUS脚本(thebatch.sql):

代码语言:javascript
复制
DROP USER TEST CASCADE;
CREATE USER TEST identified by test123
    default tablespace users temporary tablespace temp
    quota unlimited on users;
GRANT dba to TEST;
HOST imp userid ='TEST/test123@MySID' file='D:\Dumps\Oracle\Imported\exp_TEST1_at_MYDEV_20121108.dmp'  log='D:\Dumps\OracleLog\NewImp160913_run.log' rows=y full=y ignore=y; 
QUIT

现在,我不是DOS脚本专家,但是您可以拥有一个script (the_drop_crt_user.sql),如下所示:

代码语言:javascript
复制
DROP USER TEST CASCADE;
CREATE USER TEST identified by test123
        default tablespace users temporary tablespace temp
        quota unlimited on users;
GRANT dba to TEST;
QUIT

然后运行sql脚本,然后运行IMP的DOS脚本:

代码语言:javascript
复制
SQLPLUS sys/sys@MySID as sysdba @ the_drop_crt_user.sql
IMP userid=.....
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26378213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档