Это похоже на скрипт оболочки. Было бы яснее, если бы он начинался с шебанга и некоторых комментариев:
#!/bin/sh
#
# Run rtl_est_dte form to get new data,
# then run 5 scripts to process the data, saving the results in file test
В любом случае, учитывая, что это, вероятно, сценарий оболочки, вы должны иметь возможность добавить echo
строк, чтобы комментировать то, что вы хотите:
sperform rtl_est_dte
echo "Running g_rtl_mrg1"
isql <g_rtl_mrg1.sql> test
echo "Running fm_prft"
isql <fm_prft.sql> test
echo "Running whs_prft"
isql <whs_prft.sql> test
echo "Running upgfp_frgt"
isql <upgfp_frgt.sql> test
echo "Running upd_plants"
isql <upd_plants.sql> test
echo "Finished"
Я надеюсь, что вы сможете дать более значимые имена выполняемым шагам, но это иллюстрирует, что вы могли бы сделать.
Я также заметил, что он продолжает убирать Файл test
, поэтому информация, сохраненная при запуске g_rtl_mrg1.sql
, теряется при запуске fm_prft.sql
, и теряется при запуске whs_prft.sql
и так далее. Используйте >>
для добавления к файлу test
. Было бы более обычным отделить перенаправление вывода от перенаправления ввода:
isql <upd_plants.sql >>test
, а не текущее:
isql <upd_plants.sql> test
Это не является чем-то отдаленно подобным XML. Тем не менее, по крайней мере, оригинальный автор не использовал:
<upd_plant.sql> test isql
Это работает так же - это сбивает с толку всех, кто его читает.
Вы также можете вставлять экранирование оболочки в .sql
файлы:
SELECT * FROM SomeWhere;
!echo "Hello world!"
SELECT * FROM ElseWhere;
IIR C, экранирование оболочки не работает, если вы попытаетесь прочитать файл .sql
в редакторе isql
SQL и затем запустить его. Он работает только из командной строки, как в коде в вопросе.
Вывод прогресса (Database selected
et c) записывается со стандартной ошибкой, к лучшему или к худшему (хуже IMO, но я написал свой собственный SQLCMD за годы до того, как Microsoft выпустил их, именно потому, что мне не нравилось то, что делал isql
, и то, что делал dbaccess
после его выпуска).