|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
Добрый день. Задача: считать файл, изменить в нем одну строку и сохранить измененный файл. Делал так: COPY tmp_table FROM 'D:\file.txt' delimiter '^'; delimiter указал чтбоы заменить стандартый в ввиде табуляции. Затем UPDATE tmp_table И пишу его обратно: COPY (SELECT * FROM tmp_table) TO 'D:\file.txt' delimiter '^'; Проблема: в строках где есть табуляция вместо табуляции получаю "\t\t\t\t\t". Вопрос: Как вместо \t\t\t\t\t в файл записать табуляцию как она была изначально? В таблице tmp_table табуляция в нормальном виде. Файл содержит табуляцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 14:49 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
Для эксперимента можно конфиг постгреса загрузить и выгрузить куда-нить. на выходе вместо: # (change requires restart) будет: \t\t\t\t\t# (change requires restart) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 16:09 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
Ну или copy вообще в принципе не может записать символ табуляции в файл? о_О ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 16:22 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
Пока не нашел решение ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:10 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
lr2, Зачем для этого вообще PostgreSQL?? Открой D:\file.txt в текстовом редакторе, например, Notepad++ и сделай замену подстроки "\t" на " " (табуляцию) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 18:30 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
DSKaluginlr2, Зачем для этого вообще PostgreSQL?? Открой D:\file.txt в текстовом редакторе, например, Notepad++ и сделай замену подстроки "\t" на " " (табуляцию) Это не спортивно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 18:57 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
Ну и очень надо именно так сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 19:03 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
lr2Ну или copy вообще в принципе не может записать символ табуляции в файл? о_О https://postgrespro.ru/docs/postgresql/11/sql-copy В документации по COPY написано, что все настройки регулируются опциями FORMAT и WITH ( параметр [, ...] ) а не в конфиге сервера... авторDELIMITER Задаёт символ, разделяющий столбцы в строках файла. По умолчанию это символ табуляции в текстовом формате и запятая в формате CSV. Задаваемый символ должен быть однобайтовым. Для формата binary этот параметр не допускается. Если этого не достаточно, значит выбранное решение не подходит! lr2Задача: считать файл, изменить в нем одну строку и сохранить измененный файл. Причем тут PostgreSQL вообще?? тут нужен текстовый редактор, ну или "для спортивности" - любой язык программирования например: python, C#, Pascal, Basic... Вам в раздел "Программирование", а не "Использование СУБД" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2019, 10:25 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
DSKaluginlr2Ну или copy вообще в принципе не может записать символ табуляции в файл? о_О https://postgrespro.ru/docs/postgresql/11/sql-copy В документации по COPY написано, что все настройки регулируются опциями FORMAT и WITH ( параметр [, ...] ) а не в конфиге сервера... авторDELIMITER Задаёт символ, разделяющий столбцы в строках файла. По умолчанию это символ табуляции в текстовом формате и запятая в формате CSV. Задаваемый символ должен быть однобайтовым. Для формата binary этот параметр не допускается. Если этого не достаточно, значит выбранное решение не подходит! lr2Задача: считать файл, изменить в нем одну строку и сохранить измененный файл. Причем тут PostgreSQL вообще?? тут нужен текстовый редактор, ну или "для спортивности" - любой язык программирования например: python, C#, Pascal, Basic... Вам в раздел "Программирование", а не "Использование СУБД" При том что это конфиг постгресса, доступа к ОС нет, только на 5432, а серверов где его нужно поменять чуть больше чем 100500. Так что надо с помощью COPY. Почему COPY не может записать файл в том же виде, в каком он был прочитан - непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 10:36 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
аутоконф не подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 10:46 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
постгрес на винде. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 10:46 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
lr2, pg_file_write: ? https://www.sql.ru/forum/actualsearch.aspx?search=pg_file_write&sin=0&bid=7&a=&ma=0&dt=-1&s=1&so=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 10:50 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
lr2, ps : copy ещё и хидер файлу пишет, есличо. кажецца 6 байтиков но если проверить, как вам выше рекомендовали : Код: sql 1. 2. 3. 4. 5. 6.
-- вполне себе без эскейпинга выглядит а так-то копи обязан искейпить по своей природе -- какой-то символ для разделителя полей вынь да положь. опять же возвраты каретки в полях. т.е. он ни разу не текстовый редактор ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 11:09 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
qwwqlr2, ps : copy ещё и хидер файлу пишет, есличо. кажецца 6 байтиков но если проверить, как вам выше рекомендовали : Код: sql 1. 2. 3. 4. 5. 6.
-- вполне себе без эскейпинга выглядит а так-то копи обязан искейпить по своей природе -- какой-то символ для разделителя полей вынь да положь. опять же возвраты каретки в полях. т.е. он ни разу не текстовый редактор Ого!!! Так работает !!!! По крайней мере, табуляция нормальная. Большое спасибо!!! ... скажите, а этот самый хидер... с ним конфиг постгресса может быть? От жтого сам постгрес не упадет? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 11:40 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
qwwq, пустые строки в кавычках делает Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 11:43 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
lr2Почему COPY не может записать файл в том же виде, в каком он был прочитан - непонятно. Потому что не его это задача. А вы мне кажется пытаетесь изобрести ALTER SYSTEM ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 11:47 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
Melkijlr2Почему COPY не может записать файл в том же виде, в каком он был прочитан - непонятно. Потому что не его это задача. А вы мне кажется пытаетесь изобрести ALTER SYSTEM нет, не пытаюсь и аутоконф меня не интересует. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 11:58 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
lr2Melkijпропущено... Потому что не его это задача. А вы мне кажется пытаетесь изобрести ALTER SYSTEM нет, не пытаюсь и аутоконф меня не интересует. 21998703 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 11:58 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
lr2нет, не пытаюсь и аутоконф меня не интересует. Просто по описанию задачи очень похоже на то, для чего сделали alter system. Но если не подходит, можно попробовать писать через copy в программу, заменяющую \t на символы табуляции. Например: Код: sql 1. 2. 3. 4.
Думаю, что для windows можно найти sed или на любом скриптовом языке сделать однострочник. И про COPY : COPYВ настоящее время COPY TO никогда не выводит спецпоследовательности с восьмеричными или шестнадцатеричными кодами, однако выводит другие вышеперечисленные спецпоследовательности вместо управляющих символов . К другим спецпоследовательностям относится в том числе и \t. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 17:03 |
|
Как избавится от символа табуляции при COPY ?
|
|||
---|---|---|---|
#18+
Павел Лузановlr2нет, не пытаюсь и аутоконф меня не интересует. Просто по описанию задачи очень похоже на то, для чего сделали alter system. Но если не подходит, можно попробовать писать через copy в программу, заменяющую \t на символы табуляции. Например: Код: sql 1. 2. 3. 4.
Думаю, что для windows можно найти sed или на любом скриптовом языке сделать однострочник. И про COPY : COPYВ настоящее время COPY TO никогда не выводит спецпоследовательности с восьмеричными или шестнадцатеричными кодами, однако выводит другие вышеперечисленные спецпоследовательности вместо управляющих символов . К другим спецпоследовательностям относится в том числе и \t. Спасибо, так нормально работает. Пишу, потом меняю \t на табуляцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2019, 10:50 |
|
|
start [/forum/topic.php?fid=53&msg=39879204&tid=1994988]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 300ms |
total: | 428ms |
0 / 0 |