问题1: 
我编写的bat文件内容是:sqlplus  system/manager@orcl  @C:\insert_into_temp.sql 
                    sqlplus  system/manager@orcl  @C:\update_temp.sql insert_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文件里执行都没有问题,但是放在一起就只能执行第一条,请问一起执行的应该怎么写,请高手帮忙做答!
而且这两个sql问不能和在一起 问题2 
 bat文件如何执行一个过程,或者函数,或者包(PL SQL编写的),请问如何执行这些文件 
 例如: 过程定义如下, 包,函数 也同样。 
   create or replace procedure XX 
    IS 
    BEGIN 
    END; 
 保存的文件名为 my_pro.sqlbat文件执行sql文的时候这样写:
sqlplus  system/manager@orcl  @C:\update_temp.sql 运行bat的结果:只是procedure被作成了,但是procedure没有被执行请问如何调用,请高手帮忙,很着急,谢谢!  

解决方案 »

  1.   

    INSERT INTO T_temp 
      SELECT * 
      FROM T_temp2; 
    /update_temp.sql的内容是 
    UPDATE T_temp 
     SET T_temp.A = 'aa'; 
    /
    COMMIT; 问题(2)创建包头的语句
            /
           创建过程的语句
      

  2.   

    1、
    insert_into_temp.sql的内容改为下面的请试试: 
      INSERT INTO T_temp 
      SELECT * 
      FROM T_temp2; 
      COMMIT; 
      Exit;2、update_temp.sql的内容是create or replace procedure。
       而要执行procedure,请用下面的语句:
       Execute Immediate xx;
      

  3.   


    第一个加“Exit”,问题解决了,谢谢!第二个问题 “Execute Immediate ”在sqlplus可以执行
    但是要执行bat文件  这句话该怎么呢
      

  4.   

    之前写错了 bat文件执行sql文应该是这样写: 
    sqlplus  system/manager@orcl  @C:\my_pro.sql
      

  5.   

    简单的改法,每个文件后面加个exit;
    或者做一个do_sql.sql
    内容
    @C:\insert_into_temp.sql;
    @C:\update_temp.sql;批处理:sqlplus  system/manager@orcl  @C:\do_sql.sql 
      

  6.   

    把要执行的procedure放在sql文件里,my_pro.sql内容如下:Declare
    Begin
    Execute Immediate Xx;
    End;然后执行sqlplus  system/manager@orcl  @C:\my_pro.sql它。