Редактирование 9gb .sql файла - PullRequest
3 голосов
/ 12 марта 2010

У меня есть "немного" большой скрипт SQL, сохраненный в виде текстового файла. Общая сумма составляет 8,92 ГБ, так что это немного чудовище.

Я должен выполнить поиск и замены в этом файле (в частности, изменить все NOT NULL на NULL, чтобы все поля могли быть обнулены), а затем выполнить проклятую вещь. У кого-нибудь есть какие-либо предложения для текстового редактора, который мог бы это сделать?

Другой способ решения этой проблемы - написать программу, которая читает блок, заменяет нужные мне данные, а затем сохраняет их в новом файле, но я бы предпочел использовать какой-то стандартный способ сделать это.

Это также не решает проблему открытия зверя в студии управления сервером sql для выполнения проклятой вещи ...

Есть идеи?

Спасибо, Eric

Ответы [ 5 ]

6 голосов
/ 12 марта 2010

sed создан именно для такой работы.

sed -e 's/\( NOT\)\? NULL/ NOT NULL/g' < input.sql > output.sql

sed также доступно в Windows .

Редактировать: я изменил свое утверждение, чтобы избежать выдачи NOT NOT NULL, когда вход уже содержит NOT NULL.

1 голос
/ 12 марта 2010

Используйте sed или просто perl -pne 's/foo/bar/' file.sql > newfile.sql (foo будет заменен на bar).

Для загрузки SQL используйте osql.exe, который должен находиться где-то в каталоге c: \ program files ... \ sql server \ bin

0 голосов
/ 12 марта 2010

Осторожнее с этим топором Евгений ... ты не хочешь заглушать какие-то предложения WHERE, которые должны остаться НЕ НУЛЬ

0 голосов
/ 12 марта 2010

Вы должны рассмотреть возможность использования perl. Это делает замену текста на месте. Используйте это как

perl -pie "s/ NOT NULL/ NULL/g" hugefile.sql
0 голосов
/ 12 марта 2010

Вы можете использовать редактор, который отображает файлы, а не загружает их в память. Как UltraEdit или Notepad ++, я уверен, что есть еще много.

Это все еще медленно, но очень функционально.

...