Было бы неплохо также включить в него / * * / комментарии, хотя я предполагаю, что было бы сложно учесть, что они могут перекрываться или строки начинаются с - и заканчиваются * /, и вы пропускаете закрытие часть.
я проблема с очисткой комментариев и пустых строк из уже существующего файла sql. Файл содержит более 10 тыс. Строк, поэтому его очистка вручную невозможна.
У меня есть небольшой скрипт на Python, но я не знаю, как обрабатывать комментарии внутри многострочных вставок.
Код:f = file( 'file.sql', 'r' )
t = filter( lambda x: not x.startswith('--') \
and not x.isspace()
, f.readlines() )
f.close()
t #<- here the cleaned data should be
Как это должно работать:Это должно быть очищено:
-- normal sql comment
Это должно остаться как есть:
CREATE FUNCTION func1(a integer) RETURNS void
LANGUAGE plpgsql
AS $
BEGIN
-- comment
[...]
END;
$;
INSERT INTO public.texts (multilinetext) VALUES ('
and more lines here \'
-- part of text
\'
[...]
');