问题1:
我编写的bat文件内容是:sqlplus system/manager@orcl @C:\insert_into_temp.sqlsqlplus system/manager@orcl @C:\update_temp.sqlinsert_into_temp.sql的内容是
INSERT INTO T_temp
SELECT *
FROM T_temp2;
COMMIT; update_temp.sql的内容是
UPDATE T_temp
SET T_temp.A = 'aa';
COMMIT;这两条语句单独在bat文件里执行都没有问题,但是放在一起就只能执行第一条,请问一起执行的应该怎么写,请高手帮忙做答!问题2
bat文件如何执行一个过程,或者函数,或者包(PL SQL编写的),请问如何执行这些文件
过程,函数 定义如下
create or replace procedure XX ()/ create or replace function XX ()
IS
BEGIN
END;
包也同样。
请问如何调用这些,请高手帮忙,很着急,谢谢!
我编写的bat文件内容是:sqlplus system/manager@orcl @C:\insert_into_temp.sqlsqlplus system/manager@orcl @C:\update_temp.sqlinsert_into_temp.sql的内容是
INSERT INTO T_temp
SELECT *
FROM T_temp2;
COMMIT; update_temp.sql的内容是
UPDATE T_temp
SET T_temp.A = 'aa';
COMMIT;这两条语句单独在bat文件里执行都没有问题,但是放在一起就只能执行第一条,请问一起执行的应该怎么写,请高手帮忙做答!问题2
bat文件如何执行一个过程,或者函数,或者包(PL SQL编写的),请问如何执行这些文件
过程,函数 定义如下
create or replace procedure XX ()/ create or replace function XX ()
IS
BEGIN
END;
包也同样。
请问如何调用这些,请高手帮忙,很着急,谢谢!
解决方案 »
- 紧急求助 关于oracle数据库问题
- Oracle9iDialect和Oracle10gDialect区别?
- 求Oracle存储过程资料(电子书什么的)。。。。。
- 请问Enterprise Manager 10g java console在哪里?
- 祝大家新年快乐
- !!10万火急,用delphi的ADOStoreProc调用oracle服务器存储过程问题
- 如何在oracle8i下创建表?有哪些注意事项?
- oracle与delphi连接问题,在线等待给分——
- linux上oracle 监听启动报错TNS-12535 TNS-12560 TNS-00505
- vs连接Oracle服务器
- 请解释下 INDEX BY BINARY_INTEGER,谢谢
- pl/sql创建表空间,并对表空间创建用户和密码,怎么做?
[code=BatchFile]
d:\mytest>sqlplus -helpSQL*Plus: Release 9.2.0.8.0 - Production用法: SQLPLUS [ [<option>] [<logon>] [<start>] ]
其中 <option> ::= -H | -V | [ [-L] [-M <o>] [-R <n>] [-S] ]
<logon> ::= <username>[/<password>][@<connect_string>] | / | /NOLOG
<start> ::= @<URI>|<filename>[.<ext>] [<parameter> ...]
"-H" 显示 SQL*Plus 的版本标帜和使用语法
"-V" 显示 SQL*Plus 的版本标帜
"-L" 只尝试登录一次
"-M <o>" 使用 HTML 标志选项 <o>
"-R <n>" uses restricted mode <n>
"-S" uses silent moded:\mytest>
[/code]start就是你的参数:脚本文件 (注意只有一个)所以解决思路是:
合并成一个脚本,作为sqlplus的start参数执行。
bat文件的内容为:
[code=BatchFile]
sqlplus system/manager@orcl @C:\mysql.sql
[/code]
mysql.sql的内容为:INSERT INTO T_temp
SELECT *
FROM T_temp2;
COMMIT; UPDATE T_temp
SET T_temp.A = 'aa';
COMMIT;
或者在执行的脚本里再调用其他脚本,如
bat文件的内容为:
[code=BatchFile]
sqlplus system/manager@orcl @C:\mysql.sql
[/code]mysql.sql的内容为:@c:\insert_temp.sql;
@c:\update_temp.sql;
insert_temp.sqlINSERT INTO T_temp
SELECT *
FROM T_temp2;
COMMIT;
update_temp.sqlUPDATE T_temp
SET T_temp.A = 'aa';
COMMIT; 问题2:把建存储过程、包的脚本作为参数在sqlplus里执行。如mybat.bat内容为
[code=BatchFile]
sqlplus system/manager@orcl @C:\myproc.sql
[/code]
调用时保存日志,如mybat.bat>mybat.log
sqlplus system/manager@orcl @C:\insert_into_temp.sql
sqlplus system/manager@orcl @C:\update_temp.sql
在这两句之间加上exit退出sqlplus,就可以了。如:
[code=BatchFile]
sqlplus system/manager@orcl @C:\insert_into_temp.sql
exit
sqlplus system/manager@orcl @C:\update_temp.sql
[/code]
exit
exit
即可。