Когда я использую команду! Spool, к целевому файлу добавляются результаты. Пример:
$ touch current.spool
$ cat curr_ts.sql
!spool current.spool
select CURRENT_TIMESTAMP;
$ snowsql -f curr_ts.sql <--- 1st execution of the script
* SnowSQL * v1.1.86
Type SQL statements or !help
+-------------------------------+
| CURRENT_TIMESTAMP |
|-------------------------------|
| 2020-04-21 13:35:59.983 -0400 |
+-------------------------------+
1 Row(s) produced. Time Elapsed: 0.096s
Goodbye!
$ cat current.spool
+-------------------------------+
| CURRENT_TIMESTAMP |
|-------------------------------|
| 2020-04-21 13:35:59.983 -0400 |
+-------------------------------+
$ snowsql -f curr_ts.sql <--- 2nd (supposedly independent) execution of the script
* SnowSQL * v1.1.86
Type SQL statements or !help
+-------------------------------+
| CURRENT_TIMESTAMP |
|-------------------------------|
| 2020-04-21 13:36:17.629 -0400 |
+-------------------------------+
1 Row(s) produced. Time Elapsed: 0.098s
Goodbye!
[1019] bjs13b@igloo:/home/bjs13b/snowsql $ cat current.spool
+-------------------------------+
| CURRENT_TIMESTAMP |
|-------------------------------|
| 2020-04-21 13:35:59.983 -0400 |
+-------------------------------+
+-------------------------------+
| CURRENT_TIMESTAMP | <--- file NOT replaced by 2nd execution!
|-------------------------------|
| 2020-04-21 13:36:17.629 -0400 |
+-------------------------------+
[править, чтобы надеяться прояснить проблему]
Если каждое выполнение должно создавать почасовой файл, то каждое выполнение ДОБАВЛЯЕТ ДАННЫЕ в почасовой файл ... так много для почасового набора данных.
Я знаю много обходных путей, но это конкретный c вопрос о спуле. Я бы предпочел вариант, который изменяет поведение команды спула. В других системах я привык к тому, что файл перезаписывается, и это продолжает меня кусать!