SQL * Plus – Spool CSV – SP2-0734: неизвестная команда beginnin

Вопрос:Когда я запускаю следующую задачу .cmd: sqlplus -s User/Password@database @Query.sql 'G:' Я получаю эту ошибку: SP2-0734: unknown command beginnin Даже добавление set sqlblanklines on не удалось. С помощью простого запроса, такого как select * from table1, он работает. С более сложным запросом (несколько join, group by) он не работает = > Даже если файл хорошо

Вопрос:

Когда я запускаю следующую задачу .cmd:

sqlplus -s User/Password@database @Query.sql ‘G:’

Я получаю эту ошибку:

SP2-0734: unknown command beginnin

Даже добавление set sqlblanklines on не удалось.

С помощью простого запроса, такого как select * from table1, он работает.

С более сложным запросом (несколько join, group by) он не работает = > Даже если файл хорошо сгенерирован. Внутри файла я просто обнаруживаю ошибки.

Подробнее о проблеме вы найдете ниже:

SP2-0734: unknown command beginning «FROM NOTI….» — rest of line ignored. SP2-0734: unknown command beginning «INNER JOIN…» — rest of line ignored. SP2-0734: unknown command beginning «INNER JOIN…» — rest of line ignored. SP2-0734: unknown command beginning «INNER JOIN…» — rest of line ignored. SP2-0044: For a list of known commands enter HELP and to leave enter EXIT. SP2-0734: unknown command beginning «INNER JOIN…» — rest of line ignored. SP2-0734: unknown command beginning «INNER JOIN…» — rest of line ignored. SP2-0734: unknown command beginning «INNER JOIN…» — rest of line ignored. SP2-0734: unknown command beginning «INNER JOIN…» — rest of line ignored. SP2-0044: For a list of known commands enter HELP and to leave enter EXIT. SP2-0734: unknown command beginning «LEFT JOIN …» — rest of line ignored. SP2-0734: unknown command beginning «LEFT join …» — rest of line ignored. SP2-0734: unknown command beginning «LEFT join …» — rest of line ignored. SP2-0734: unknown command beginning «LEFT JOIN …» — rest of line ignored. SP2-0044: For a list of known commands enter HELP and to leave enter EXIT. SP2-0734: unknown command beginning «LEFT join …» — rest of line ignored. SP2-0734: unknown command beginning «LEFT join …» — rest of line ignored. SP2-0734: unknown command beginning «WHERE NOTI…» — rest of line ignored. SP2-0734: unknown command beginning «GROUP BY N…» — rest of line ignored. SP2-0044: For a list of known commands enter HELP and to leave enter EXIT. SP2-0734: unknown command beginning «,table1…» — rest of line ignored. SP2-0734: unknown command beginning «,table2…» — rest of line ignored. Ответ №1

По умолчанию SQL * Plus обрабатывает пустую строку как завершение предыдущей команды:

Пустая строка в инструкции SQL или script сообщает SQL * Plus, что вы закончили ввод команды, но не хотите ее запускать.

Первая пустая строка перед FROM завершает SELECT – но она не выполняется, поскольку последняя строка не имеет точки с запятой в конце, и у вас нет / на следующем линия. Этот частичный SELECT хранится в буфере операторов, но никогда не выполняется.

SQL * Plus затем пытается интерпретировать остальную часть файла, но поскольку каждая последующая строка не начинается с чего-то, что она распознает как SQL и не является командой SQL * Plus, вы получаете SP2-0044 для всех их.

Вы можете удалить пустые строки в середине инструкции; или выпустите SET SQLBLANKLINES ON в начале вашего script:

Управляет ли SQL * Plus пустые строки в команде SQL или script. ON интерпретирует пустые строки и новые строки как часть команды SQL или script. OFF, значение по умолчанию не позволяет пустые строки или новые строки в команде SQL или script или script.

Ответ №2

У меня такая же проблема, даже я попробовал SET SQLBLANKLINES ON, но не повезло. Я, наконец, понял, что проблема связана с форматом кодирования файлов. Фактически я использовал, чтобы сохранить свой sql файл, используя визуальную студию, которая сохраняет файл в формате кодирования utf-8.

solution – открыть файл sql в блокноте → сохранить как формат кодировки ANSI. он работает.

Ответ №3

SET SQLBLANKLINES ON не работал в моем случае, когда я использую сценарий cmd для запуска и сохранения результатов sqlplus в виде txt файла.

Как только я добавил пустую строку между строкой комментария “PROMPT” и первой строкой моего оператора select, ошибка исчезла. Раньше моя строка оператора select находилась сразу под строкой PROMPT и вырабатывала SP2-0734.

Оцените статью
Добавить комментарий