SPOOL objects_log.log PROMPT SCRIPT:/ /。sql @ .sql

时间:2012-09-01 16:07:33

标签: database oracle shell sqlplus

我正在审核一些代码。它包含一个包含此

的.sql文件
****SPOOL install_cg_objects_log.log
PROMPT SCRIPT: /cg/synonyms/cretate_synonyms_for_cg.sql
@cg/sy/cretate_synonyms_for_cg.sql
PROMPT SCRIPT: /cg/packages/in.sql
@cg/packages/in.sql
PROMPT SCRIPT:/cg/triggers/tr.sql
@cg/triggers/trg.sql
SPOOL OFF****

任何人都可以解释一下这个剧本在做什么。

2 个答案:

答案 0 :(得分:1)

您拥有的*.sql文件旨在sqlplus执行(oracle命令行实用程序)

  1. SPOOL 将查询结果存储在指定文件中 - 创建一种日志文件。
  2. PROMPT 会在sqlplus环境
  3. 中显示一条消息
  4. @ 执行存储在文件中的脚本(例如@/somepath/scriptfile.sql

答案 1 :(得分:0)

我不知道****在这里意味着什么,只是假装你在这里使用它来明确代码的开始和结束。 所以,让我们详细说明您的代码。

SPOOL filename.log - 将查询结果存储在空格后指定的文件中。

PROMPT“some message” - 表示您要在执行时显示的运行时文本消息。

@ - 这个标志用于从SQL>执行.sql你的给定路径的提示,就像你从main.sql文件中调用多个.sql文件。

.sql - 这是一个脚本,其中包含一组多个DML,DDL,DCL语句和其他Oracle对象定义。

[oracle@OLE1 Desktop]$ vi yourmainfile.sql 
SPOOL install_cg_objects_log.log
PROMPT SCRIPT: /cg/synonyms/cretate_synonyms_for_cg.sql
select 'test' from dual;
PROMPT SCRIPT: /cg/packages/in.sql
select sysdate from dual;
PROMPT SCRIPT:/cg/triggers/tr.sql
select * from dual;
--@/cg/triggers/tr.sql
SPOOL OFF

[oracle@OLE1 Desktop]$ 
[oracle@OLE1 Desktop]$ sqlplus -s scott/tiger
@yourmainfile.sql
SCRIPT: /cg/synonyms/cretate_synonyms_for_cg.sql

'TES
----
test

SCRIPT: /cg/packages/in.sql

SYSDATE
---------
12-JUL-17

SCRIPT:/cg/triggers/tr.sql

D
-
X

exit
[oracle@OLE1 Desktop]$