-2

我正在审查一些代码。它包含一个 .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****

谁能解释一下这个脚本在做什么。

4

2 回答 2

1

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

  1. SPOOL将查询结果存储在指定的文件中 - 创建排序的日志文件。
  2. PROMPTsqlplus在环境中显示消息
  3. @执行存储在文件中的脚本(例如@/somepath/scriptfile.sql
于 2012-09-01T16:25:23.460 回答
0

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

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

PROMPT "Some message" --To 表示要在执行时显示的运行时文本消息。

@ --这里这个符号用于从给定路径的 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]$ 
于 2017-07-12T16:55:48.130 回答