Несколько SQL-файлов в каталоге, который в свою очередь используется в сценарии Unix

У меня есть сценарий скажем sql_result.sh в каталоге /tmp/SQL_QUERY, который просто вызывает сценарий sql в том же месте и выполняет команды sql. Код:

sqlplus -S $MY_UN/$MY_PW@$MY_DB <<!
set serveroutput on;
@/tmp/SQL_QUERY/sql_file1
quit
!

Однако, если я скажу 2 файла SQL sql_file1.sql и sql_file1.sql_new в этом каталоге. Какой из сценариев sql подберет мой сценарий unix? Как и почему?

Спасибо

1 ответ

Решение

Краткий ответ: обычно sql_file1.sql

Расширением по умолчанию является.SQL, как объяснено в документации для @:

file_name[.ext]

Represents the script you wish to run. If you omit ext, SQL*Plus assumes the default
command-file extension (normally SQL). For information on changing the default extension,
see the SUFFIX variable of the SET command.

Как говорится, вы можете использовать SET команда, чтобы изменить, какое расширение используется, или вы можете явно указать расширение в скрипте.

Команда SET говорит:

Sets the default file extension that SQL*Plus uses in commands that refer to scripts. SUFFIX does not control extensions for spool files.

Example

To change the default command-file extension from the default, .SQL to .UFI, enter

SET SUFFIX UFI

If you then enter 

@EXAMPLE

SQL*Plus will look for a file named EXAMPLE.UFI instead of EXAMPLE.SQL.

(Обратите внимание, что SET команда может присутствовать в вашем файле LOGIN.)

Другие вопросы по тегам