sqlplus не может буферизовать файл, имя которого начинается с точки в Windows

Я использую некоторые сценарии Windows, включающие буферизацию файлов с помощью sqlplus. Я продолжаю получать ошибку:

SP2-0606: Cannot create SPOOL file "Z:/regression/RBC/.flashback"

Мне удалось ограничить проблему довольно небольшой областью: я не могу буферизовать некоторые файлы, имена которых в Windows начинаются с точки. В Windows cmd я ввел sqlplus с

sqlplus /nolog

Затем попробовал следующие команды:

SQL> spool Z:/regression/test
SQL> spool Z:/regression/test.txt
SQL> spool Z:/regression/.test
SP2-0606: Cannot create SPOOL file "Z:/regression/.test"
SQL> spool Z:/regression/.test.
SQL> spool Z:/regression/.test.txt

Как ни странно, не работает только .test. Но это именно то, что мне нужно. Я пробовал те же команды в Linux, проблем нет. Я использую sqlplus 11.2.0.3.0 в Windows. Что еще более странно, на машине моего коллеги он работает совершенно нормально. (На самом деле скрипты используются всеми разработчиками в моей компании.) Кажется, я, к сожалению, столкнулся с кошмаром для программистов: невоспроизводимый баг...

Во всяком случае, я полностью застрял здесь. Случалось ли это с кем-нибудь? Какие возможные подходы я могу использовать?


person Jing Li    schedule 26.05.2016    source источник
comment
нельзя сравнивать линукс с виндой. Это совершенно разные операционные системы, и тот факт, что имя файла работает в Linux, совершенно не имеет отношения к Windows. Windows довольно шизофренична. Проводник не позволяет вам создать файл .name, но вы можете легко сделать это из командной строки. Вас, наверное, это как-то зацепило.   -  person Marc B    schedule 26.05.2016
comment
@MarcB Спасибо за комментарий. Да, я знаю об этом. Под невоспроизводимостью я подразумеваю не только то, что работает в Linux, не работает в Windows, но и то, что работает на чужой машине с Windows, не работает на моей... Я полагаю, что это требует некоторой настройки, я просто понятия не имею, с чего начать.   -  person Jing Li    schedule 26.05.2016
comment
Это может быть проблема с разрешениями. Остальные .test файлы успешно следуют за буфером, верно?   -  person tale852150    schedule 03.06.2016
comment
@ tale852150 Да, единственная ситуация, в которой он не работает, - это когда имя файла, которое я хочу буферизовать, представляет собой точку плюс несколько символов. Как это может быть связано с проблемой разрешения? Спасибо за любое предложение!   -  person Jing Li    schedule 06.06.2016


Ответы (1)


Из документов Oracle описание причины ошибки:

Причина. Команде STORE не удалось создать указанный файл. Возможно, недостаточно места на диске, слишком много открытых файлов или защита только для чтения в выходном каталоге.

Судя по тому, что вы показали в вопросе, последний вариант не является проблемой. Проверьте два других сценария: недостаточно места на диске и слишком много открытых файлов.

Я смог SPOOL в файл .test в своей системе, используя Oracle XE 11.2.0.2:

введите здесь описание изображения

person tale852150    schedule 07.06.2016