批处理操作Oracle数据库
由于最近在测试中要执行Oracle数据库的初始化,每次要测试执行是否成功。
而初始化完成后,要是有错误需要清理数据库,以及表空间,最后还要重新建立用户,异常麻烦。就想着如何简化一下于是就想到了批处理。
首先我先把我要在数据库执行的操作写好:
删除用户
-drop user
drop user SONAPSDBA cascade;
删除用户自己建立的表空间
--DROP TABLESPACE
DROP TABLESPACE Sonaps_Space INCLUDING CONTENTS AND DATAFILES;
创建用户
-- Create the user
create user SONAPSDBA
identified by "sonapsdba"
default tablespace USERS
temporary tablespace TEMP
profile DEFAULT;
给用户赋予权限
-- Grant/Revoke role privileges
grant connect to SONAPSDBA with admin option;
grant dba to SONAPSDBA with admin option;
grant resource to SONAPSDBA with admin option;
赋予用户可以创建表空间的系统权限
-- Grant/Revoke system privileges
grant unlimited tablespace to SONAPSDBA with admin option;
这个commit;是必须要的。由于是批处理执行比如要加入commit;
commit;
这个exit;存在的原因是 由于是批处理执行,调用sqlplus。如果不执行exit;则sqlplus就不会退出。
exit;
好了 文件建好了 我们将它命名为CreateSonapsUser.sql。当然这个名字可以随便起。
下面就需要写批处理了
首先要写登录语句:
sqlplus sys/sys@sonapsDB
as sysdba @"C:/Users/WangTaiping/Desktop/InitSonapsDB/CreateSonapsUser.sql"这里面的as sysdba很关键 因为sys是系统管理员账户 不用这个登陆会报错。后面写上sql文件的绝对路径就ok了。
如果需要测试的话还可以加上一个休止符。
Pause
Ok.