powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / проставить апострофы в дампе sql с помощью regex
17 сообщений из 17, страница 1 из 1
проставить апострофы в дампе sql с помощью regex
    #38732791
Kamik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
есть 3-х гиговый дамп из SQLite 2.
В нем не везде стоят апострофы.

Код: plsql
1.
2.
INSERT INTO ZSDM_KNMT VALUES('SAP',0000000044,7753900140,'DEUTZ','282 0386EY7103-14',2820386EY710314,'','');
INSERT INTO ZSDM_KNMT VALUES('SAP',0000000044,7780900225,'DEUTZ',04397541,04397541,'','');



Mysql при импорте первой строки ругается

ERROR 1367 (22007) at line 10563723: Illegal double '2820386E710314' value found during parsing

Как можно проставить апострофы там где их нету в файле?
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38732935
Kamik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то есть первая строка должна выглядеть так
Код: plsql
1.
INSERT INTO ZSDM_KNMT VALUES('SAP','0000000044','7753900140','DEUTZ','282 0386EY7103-14','2820386EY710314','','');
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733035
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С этого сообщения можно сделать вывод что в этом поле ожидался double? Тогда кавычки ничего не дадут.

ERROR 1367 (22007) at line 10563723: Illegal double '2820386E710314' value found during parsing
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733046
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mayton, не факт.

Но то, что задача в общем случае НЕ решаема, надеюсь все согласны? )))
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733049
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут нужен спец по СКЛайту. Если кавычки можно везде поставить и это прокатит - то решаемо.
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733051
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно почему их где-то нет. Явно у кого-то конечности были кривые (и это врят ли SqlLite).

Если в не закавыченными попали строки которые содержать запятую, то задача не решаема. Если таких строк нет, то раставить кавычки программно на Java или любом другом языке, дело 30 мин. (регулярные выражения не знаю)
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733068
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того это не число. Просто какая-то лажа.

2820386EY710314
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733085
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решаемая задача. Надо просто распарсить и обратно склеить с добавлением кавычек где их нет. Вопрос на час-два.
Другое дело что ТС хочет регулярными выражениями это порешать - не получиться если внутри кавычек есть запятые.
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733088
Kamik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonС этого сообщения можно сделать вывод что в этом поле ожидался double? Тогда кавычки ничего не дадут.

ERROR 1367 (22007) at line 10563723: Illegal double '2820386E710314' value found during parsing нет. там все поля VARCHAR
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733090
Kamik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevНепонятно почему их где-то нет. Явно у кого-то конечности были кривые (и это врят ли SqlLite).

Если в не закавыченными попали строки которые содержать запятую, то задача не решаема. Если таких строк нет, то раставить кавычки программно на Java или любом другом языке, дело 30 мин. (регулярные выражения не знаю) это так экспортировал http://sourceforge.net/projects/sqlitebrowser/
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733091
Kamik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TРешаемая задача. Надо просто распарсить и обратно склеить с добавлением кавычек где их нет. Вопрос на час-два.
Другое дело что ТС хочет регулярными выражениями это порешать - не получиться если внутри кавычек есть запятые. Просмотрел на скорую руку, вроде нету.
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733096
Kamik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сейчас еще пару тулз попробую.
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733104
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чел в разработке - это задача на 30 минут. Без регекспов.

В утилитах - это задача на конфигурирование. Где там галочку поставить где чего.

Но самый идеальный вариант бро, зайди в SQLite и сделай такой

Код: sql
1.
SELECT ''''||field1||''','''||field2.... FROM TABLE....



Заспулируй в текстовый файл.

И всё. Финита комедия. И регехпы не нужны тут.
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733107
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KamikDima TРешаемая задача. Надо просто распарсить и обратно склеить с добавлением кавычек где их нет. Вопрос на час-два.
Другое дело что ТС хочет регулярными выражениями это порешать - не получиться если внутри кавычек есть запятые. Просмотрел на скорую руку, вроде нету.
Попробуй каким-нибудь текстовым редактором заменить с таком порядке:
Код: sql
1.
2.
, на ','
'' на '
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733114
Kamik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЧел в разработке - это задача на 30 минут. Без регекспов.

В утилитах - это задача на конфигурирование. Где там галочку поставить где чего.

Но самый идеальный вариант бро, зайди в SQLite и сделай такой

Код: sql
1.
SELECT ''''||field1||''','''||field2.... FROM TABLE....



Заспулируй в текстовый файл.

И всё. Финита комедия. И регехпы не нужны тут.
утилиты корявые :) нету там таких настроек. (по крайней мере, те что пробовал)
Ну через запрос понятно, спасибо. Просто там таблиц к тому же немеряно, каждую отдельно сохранять муторно.
Но раз регексп никто с ходу не может сделать, придется запасаться кофем. :)
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38733578
Kamik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
отпишусь как было найдено решение. sql был импортирован в базу sqlite2 , потом сконвертирована база в sqlite3 родной утилитой. И родной же утилитой экспортировано в текст. Вуаля. Все апострофы на месте.
...
Рейтинг: 0 / 0
проставить апострофы в дампе sql с помощью regex
    #38737146
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример такой регулярки на JavaScript...

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<!DOCTYPE html>
<html>
<head>
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
var str="INSERT INTO ZSDM_KNMT VALUES('SAP',0000000044,7753900140,'DEUTZ','282 0386EY7103-14',2820386EY710314,'','');"
alert(str.replace(/,(?!')([A-Z\d]+)/g,",'$1'"));
</script>
</head>
<body>
</body>
</html>
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / проставить апострофы в дампе sql с помощью regex
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]