2013-06-03 36 views
0

我正在复制不同数据库之间的几个sql表。对于每个表,都准备了单独的脚本,其中包括DROP..CREATE..AS SELECT..操作以及一些PROMPT..SELECT SYSDATE..操作以用于日志目的。所有输出信息(Table dropped, Table created, etc.)必须收集在一个文件中。来自运行在不同进程中的脚本的日志输出

我已经试过了代码:

sqlplus -S user/password/sid @CopyScript1.sql > Output.log & 
sqlplus -S user/password/sid @CopyScript2.sql > Output.log & 
sqlplus -S user/password/sid @CopyScript3.sql > Output.log & 
wait 

表被复制,因为我想要的,但日志文件是完整的混乱:

Elapsed: 00:00:00.00 
TABLE1 table creation b 
Tabl 
Table dropped. 

Elapsed: 00:00:0 
Table created. 

Elapsed: 00:00:01.43 

03-06-2013 19:18:45 

Elapsed: 00:00:00.00 
TABLE2 table creation end 
end 
n end 

我应该改变,以获得适当的日志?


编辑: 每个日志条目都可以由若干行(SYSDATE和1+线的意见,再加上最终完成的手术时机,f.ex的结果:

(00:00:14) 
2013-06-04 02:08 
Provided example of log entry 
can consist of more than 1 line 

日志条目文件应该由入境日期排序。

回答

0

登录每个查询到不同的文件,然后使用“猫* .LOG”把他们重新走到一起。

+0

感谢。我已经更新的问题。SIMPL由于日志条目必须进行排序,因此在我的情况下,连接不起作用。 'cat * .log | sort> Output.log'也不起作用,因为条目是多行的,并且只有一行是带日期的(但是我们可以假设排序的日期在第二行输入,并且条目由空行分隔)。 – Chorel

+0

在这种情况下,你必须在perl/sed/whatever中写一些自定义的东西。它高度依赖于文件的确切格式。 – BraveNewCurrency

相关问题