ErrCode с «Выбрать в выходной файл с переменной» - сбивает с толку разрешения

0

Справочная информация. Я работаю с phpMyAdmin (MySQL Workbench) в базе данных mysql. Я пишу PHP-код для импорта данных в БД и выполняю его с помощью планировщика задач Windows. <= это работает отлично!

Теперь я хочу экспортировать некоторые данные в файл в папке Windows. Сначала я пишу код SQL в phpMyAdmin, чтобы увидеть некоторые debug-infos. <= здесь возникает проблема.

Моя тема: я хочу экспортировать несколько столбцов моей БД. Моя цель - поместить переменную CURRENT_TIMESTAMP в имя файла. Для этого я использую оператор Concat. Мой код (размещен ниже) получает результат следующей ошибки:

Невозможно создать/записать в файл 'C:\Temp\Export\2018-08-08 09: 21: 27.txt' (Errcode: 13 "Permission denied")

Забавно, если я заменил переменную CURRENT_TIMESTAMP например, "Hello World", нет ошибки, и мой файл будет создан в папке.

Вот мой код:

*set @sql = concat("SELECT 'LS_ID_Nr',
        'Stk_pro_Krt_DL' * 'Krt_DL' + 'RB_Stk_pro_Krt_DL' * 'RB_Krt_DL', 
        'Umstellzeit', 
        'Produktionszeit', 
        'Teilmeldung', 
        'Fertigmeldung' INTO OUTFILE 'C:/Temp/Export/",CURRENT_TIMESTAMP,".txt' fields terminated by ';' lines terminated by '\r\n' From praemie where Proof_P = 0");
prepare s1 from @sql;
execute s1;
DROP PREPARE s1;
UPDATE praemie SET Proof_P = 1 WHERE Proof_P = 0;*

У кого-нибудь есть идея, почему существует Permission Error с использованием переменной? Заранее спасибо!

Теги:
permissions
variables

1 ответ

0

Ooooohh....

Я получаю это сейчас! Проблема в том, что окна не обрабатывают ":" в именах файлов. Поэтому мне нужно отредактировать код с помощью инструкции Date_Format следующим образом:

set @sql = 
concat("SELECT 'LS_ID_Nr', 'Stk_pro_Krt_DL' * 'Krt_DL' + 'RB_Stk_pro_Krt_DL' * 'RB_Krt_DL', 
'Umstellzeit', 'Produktionszeit', 'Teilmeldung', 'Fertigmeldung' 
INTO OUTFILE 'C:/Temp/Export/Test - ", DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')," - Test.txt'
 fields terminated by ';' 
lines terminated by '\r\n' 
From praemie where Proof_P = 0")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню