powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Unload table
9 сообщений из 9, страница 1 из 1
Unload table
    #35354159
Audrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sybase ASA 9.0.2

Привет всем! У меня такая проблема.
Имеется такой код:

Код: plaintext
1.
unload select code, name from #test to 'C:\test.txt'
  QUOTES OFF DELIMITED BY '\x0D\x0A' FORMAT ASCII;

С помощью него я экспортирую текст из таблицы БД в текстовый файл. Необходимо разделить выводимый в текстовый файл текст на отдельные строчки, т.е., мне требуется записать каждый столбец из каждой записи таблицы БД в новую строку текстового файла. Например, если у меня есть таблица, состоящая из 2 стобцов и 10 строчек, текстовый файл должен в результате содержать 20 строк. Для разделения строк в файле я использую два символа с ASCII-кодами x0D и x0A в шестнадцатиричном формате.
Но приведённый выше SQL-запрос вставляет в текстовый файл только первый ASCII-символ, т.е. Символ с кодом x0D. Если открыть полученный текстовый файл в блокноте, то оказывается, что в него вставляется только один символ и строки оказываются не разделёнными. Все данные из таблицы записываются в файл одной строкой. Этот запрос корректно работает в Interactive SQL с процедурой output, однако такой вариант мне не подходит, т.к. требуется делать экспорт именно из хранимой процедуры. Есть ли какой-нибудь способ, позволяющий разделить эти данные на отдельные строки и вывести резульат в текстовый файл.
...
Рейтинг: 0 / 0
Unload table
    #35354504
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Audrius wrote:

> строки оказываются не разделёнными

Это проблемы блокнота, а не сервера.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Unload table
    #35354680
Audrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насчёт блокнота согласен, поскольку, например, для Notepad++ достаточно одного символа x0D, чтобы интерпретировать его как новую строку.
Но проблема несколько в ином. Дело в том, что эта SQL-команда записывает асего лишь один символ, т.е. x0D. А мне нужно вставлять в качестве разделителя строк именно два символа. Можно ли это сделать при помощи SQL?
unload процедура вставляет почему-то только один символ, несмотря на то, что я указываю ей в качестве параметра 2 символа.
...
Рейтинг: 0 / 0
Unload table
    #35354979
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Audrius wrote:

> Но проблема несколько в ином. Дело в том, что эта SQL-команда записывает
> асего лишь один символ, т.е. x0D. А мне нужно вставлять в качестве
> разделителя строк именно два символа. Можно ли это сделать при помощи SQL?

Подозреваю, что нет, но сослаться на авторитетный источник не могу.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Unload table
    #35354995
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000
Audrius wrote:

> А мне нужно вставлять в качестве
> разделителя строк именно два символа. Можно ли это сделать при помощи SQL?

Подозреваю, что нет, но сослаться на авторитетный источник не могу.
А я могу :)

BOL, UNLOAD TABLE statementDELIMITED BY The string used between columns. The default column delimiter is a comma. You can specify an alternative column delimiter by providing a string. However, only the first byte (character) of the string is used as the delimiter.
...
Рейтинг: 0 / 0
Unload table
    #35355919
Audrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно. Ну а вообще есть какой-нибудь другой способ задать разделители при экспорте данных, используя хранимую процедуру? Или это невозможно?
...
Рейтинг: 0 / 0
Unload table
    #35355966
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xp_read_file ( filename )
а потом уже сделайте замену \x0D на \x0D\x0A при помощи replace
а потом обратно в файл
:)
...
Рейтинг: 0 / 0
Unload table
    #35356141
Audrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Unload table
    #35358081
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вы че?! Зачем xp_readfile?!
Только xp_writefile!!! Делаешь цикл по курсору: "For select do b=b ||
convert(char,data) || '\x0D\x0A' end for" А потом один раз xp_writefile(b).
Все будет в том формате, в котором надо.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Unload table
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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