如何利用BAT文件登陆OracleSql并执行多个sql脚本PLSQL语句
下面是我在一个文件里面写的一些处理语句,可能不规范,但是勉强能用copy/ytnsnames.oraC:\Oracle\product\10.2.0\db_1\NETWO...
下面是我在一个文件里面写的一些处理语句,可能不规范,但是勉强能用
copy /y tnsnames.ora C:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\
copy /y listener.ora C:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\
net start OracleOraDb10g_home1iSQL*Plus
net start OracleOraDb10g_home1TNSListener
net start OracleServiceORCL
前面几行是启动数据库服务的一些相关操作 ,下面是登录数据库的操作,在同一文件夹下,有很多sql文件脚本,如果单独复制了执行工作量太大,并且我也知道在登录sql的情况下用@路径\文件名.sql 可以运行sql脚本的语句。但是这样写在bat文件里面就不行,没能实现对应脚本的执行,我现在问题就是如何在批处理文件里既实现前面几个开启服务和登录,又能执行下面的sql脚本。
sqlplus / as sysdba;
@sql01.sql
@sql02.sql
......
我的脚本里面有创建用户的操作,如下:
create user tao identified by tl123;
grant connect to tao;
grant resource to tao;
conn tao/tl123;
create table student(
id int not null primary key,
name varchar(45),
age int
);
运行了文件,我再尝试连接该用户,控制台显示:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>conn tao/tl123;
ERROR:
ORA-01017: invalid username/password; logon denied
警告: 您不再连接到 ORACLE。
SQL>
这说明没执行成功脚本的语句啊。 展开
copy /y tnsnames.ora C:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\
copy /y listener.ora C:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\
net start OracleOraDb10g_home1iSQL*Plus
net start OracleOraDb10g_home1TNSListener
net start OracleServiceORCL
前面几行是启动数据库服务的一些相关操作 ,下面是登录数据库的操作,在同一文件夹下,有很多sql文件脚本,如果单独复制了执行工作量太大,并且我也知道在登录sql的情况下用@路径\文件名.sql 可以运行sql脚本的语句。但是这样写在bat文件里面就不行,没能实现对应脚本的执行,我现在问题就是如何在批处理文件里既实现前面几个开启服务和登录,又能执行下面的sql脚本。
sqlplus / as sysdba;
@sql01.sql
@sql02.sql
......
我的脚本里面有创建用户的操作,如下:
create user tao identified by tl123;
grant connect to tao;
grant resource to tao;
conn tao/tl123;
create table student(
id int not null primary key,
name varchar(45),
age int
);
运行了文件,我再尝试连接该用户,控制台显示:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>conn tao/tl123;
ERROR:
ORA-01017: invalid username/password; logon denied
警告: 您不再连接到 ORACLE。
SQL>
这说明没执行成功脚本的语句啊。 展开
2个回答
展开全部
前面的写对着,后面的不对
sqlplus / as sysdba;
@sql01.sql
@sql02.sql
这不能这样写,要
sqlplus / as sysdba @1.sql
sqlplus / as sysdba @2.sql
sqlplus / as sysdba @3.sql
sqlplus / as sysdba;
@sql01.sql
@sql02.sql
这不能这样写,要
sqlplus / as sysdba @1.sql
sqlplus / as sysdba @2.sql
sqlplus / as sysdba @3.sql
追问
还不行啊,我的脚本里面有创建用户的操作,如下:
create user tao identified by tl123;
grant connect to tao;
grant resource to tao;
conn tao/tl123;
create table student(
id int not null primary key,
name varchar(45),
age int
);
追答
创建表空间、用户、‘赋权用sys用户
sqlplus sys/pwd@tns as sysdba @q1.sql
等用户创建成功,用你创建的用户
sqlplus username/pwd@tns @q1.sql
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询