powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Импорт таблицы из файла *.тхт
25 сообщений из 25, страница 1 из 1
Импорт таблицы из файла *.тхт
    #34796740
Vetic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как выполнить импорт таблицы (первые 2 поля из 4) из файлы формата: текст. Подскажите как реализовать, или где прочитать (хотелось бы на русском).
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34797694
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vetic пишет:
> текст. Подскажите как реализовать, или где прочитать (хотелось бы на

Для начала прочитать надо первый топик форума.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34798133
Vetic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия ASE 15
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34799006
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bcp /?
так как требуется только первые два поля наверное придется делать загрузку через временную таблицу или попробовать использовать для загрузки format file

мануал есть на сайте sybase.com
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34799094
Rubber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если записей до ~65 000 - можно импортировать *.txt в EXCEL (или CALC) и посредством оператора склеивания строк в формулах сформировать инсерт для каждой записи.
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34799103
Rubber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
повторюсь: для выше изложенного способа есть указанное ограничение количества записей.
Vetic вы бы описали задачу поконкретнее, ведь, напрмер,
текстовые файлы тоже разные могут быть.
И - перекликается ли это с топиком 472908 ?
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34799139
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rubberесли записей до ~65 000 - можно импортировать *.txt в EXCEL (или CALC) и посредством оператора склеивания строк в формулах сформировать инсерт для каждой записи.Нееее... Если идти по пути формирования insert'ов для каждой записи, то лучше взять не Эксель а какой-нибудь нормальный язык. Хоть тот-же vbs или perl, формировать строки на них намного проще чем в монстрах типа Экселя и нету ограничений на количество строк.
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34799146
Rubber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl - согласен.
однако вариант о котором говорю можно реализовать с минимальными знаниями 'офиса' и SQL...
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34799151
Rubber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
имеется ввиду без опыта общения с bcp, vbs или perl...
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34799161
Rubber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и обобщённая схема уже описана
MasterZiv
- создаешь в tempdb таблицу #TempTable
- вставляешь в нее нужные ID-ы
- делаешь выборку
- удаляешь временную таблицу (не обязательно, если сразу после этого сделаешь disconnect).

Все в одном простом клиентском соединении. ( напр. в ISQL ).
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34799407
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rcryo пишет:
> так как требуется только первые два поля наверное придется делать
> загрузку через временную таблицу или попробовать использовать для
> загрузки format file

Использовать временную таблицу нет смысла, потому что все равно
будет логирование при переносе данных в основную таблицу.

Использовать форматный файл невозможно, потому что это не позволит
вставлять какую-то часть таблицы - строки-то целиком либо вставляются ,
либо нет.

Так что надо простыми UPDATE-ами, только паковать их в транзакции
по N строк, где N = 100-1000 в зависимости от длины полей.
Хотя может и больше.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34799659
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я как всегда наверное опоздал, но есть способ без перла и VBS, - все делается на простом бат-файле.
Напримеh пусть есть текстовой файло вида:
val1,val2,val3,val4
....
Или вида: val1 val2 val3 val4
Идея: написать бат-файл, который запарсает исходный текстовый файл и заимпортирует два первых поля из каждой строки в таблицу.

Сгенерируем sql-скрипт.

FOR /F "tokens=1,2 delims=, " %i in (MYFILE.TXT) do @echo insert into MYTABLE values(%i,%j)>>IMPORT_SQCRIPT.SQL

полученный скрип через isql вызывается тут-же в батнике.
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34800898
Vetic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем задача конкренее стои так:
есть файл в котором гдето 3000 - 4000 тысячи записей предствленных гдето так:
ххххххххххххххх у zzzz w
ххххххххххххххх у zzzz w
ххххххххххххххх yyyу zzzz w
ххххххххххххххх у zzzz w
ххххххххххххххх yyyу zzzz w
...
нужно выбрать записи из БД где буду использовать 1е и 2е поле. Права на запись есть только во временную таблицу.
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34800905
Vetic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разделителем служи n пробелов, и длинна полей в знаках тож разная
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34800935
Vetic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rubberи обобщённая схема уже описана
MasterZiv
- создаешь в tempdb таблицу #TempTable
- вставляешь в нее нужные ID-ы
- делаешь выборку
- удаляешь временную таблицу (не обязательно, если сразу после этого сделаешь disconnect).

Все в одном простом клиентском соединении. ( напр. в ISQL ).


не разберусь как в нее вставить данные из файла
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34800967
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vetic пишет:

> не разберусь как в нее вставить данные из файла

Оператором INSERT
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34801091
Vetic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Vetic пишет:

> не разберусь как в нее вставить данные из файла

Оператором INSERT
Posted via ActualForum NNTP Server 1.4

Подскажи как! как указать путь к файлу (он находится локально, доступ к серверу через сеть), как указать маску чтоб выбрать только необходимые данные.
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34801117
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vetic пишет:

> Подскажи как! как указать путь к файлу (он находится локально, доступ к
> серверу через сеть), как указать маску чтоб выбрать только необходимые
> данные.

Оператор INSERT не использует файлов.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34801178
Vetic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не дочитал ты немного:

MasterZiv
Vetic пишет:

> не разберусь как в нее вставить данные из файла

Оператором INSERT
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34801281
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2vetic:
Вы мой пост внимательно читали?? По-моему я дал исчерпывающий ответ, который вам на 100% подходит.
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34801749
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vetic пишет:

> > не разберусь как в нее вставить данные из файла
>
> Оператором INSERT

Я имел в виду, что надо написать программу, которая бы читала
данные из файла, формировала операторы INSERT и посылала бы их
на сервер (на самом деле поскольку стоит задача изменить
2 поля в существующей таблице, я бы формировал операторы
UPDATE). Вы знаете еще какие-то способы это сделать ?
Я - нет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34801753
Vetic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пытаюсь разобратся как сделать это с помощью bcp.exe
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34801775
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Veticпытаюсь разобратся как сделать это с помощью bcp.exe
проще и быстрее воспользоваться советом Ggg_old - дело предложил.
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34801851
Vetic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad Veticпытаюсь разобратся как сделать это с помощью bcp.exe
проще и быстрее воспользоваться советом Ggg_old - дело предложил.

Саму проблему я решил, просто загнал все в Excel,
и сделал все так
Код: plaintext
1.
2.
3.
4.
5.
select XXXXXXXX as pole1, YYYY as pole2 into #tmp
union all select XXXXXXXX,YYYY
union all select XXXXXXXX,YYYY
union all select XXXXXXXX,YYYY
union all select XXXXXXXX,YYYY
\
мне просто хочется с bcp.exe разобраться, никак не пойму как там XXXXXXXX от YYYY отделить и как в нужное поле указать соответствующее.
...
Рейтинг: 0 / 0
Импорт таблицы из файла *.тхт
    #34801940
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vetic пишет:
> пытаюсь разобратся как сделать это с помощью bcp.exe

С помощью BCP изменить два поля существующих записей нельзя.

Можно только загрузить записи в какую-то таблицу.

> мне просто хочется с bcp.exe разобраться, никак не пойму как там XXXXXXXX от
> YYYY отделить и как в нужное поле указать соответствующее.

- разбирайся, полезно.
Типичный bcp -файл (в текстовом виде ) выглядит как
текстовый файл, по одной строке на запись, в котором поля
в записях (строках) разделены разделителем, обычно запятая (или <TAB> ?
черт, забыл уже ... ).
Поля в файле должны идти слева направо в том же порядке,
что физический порядок полей в таблице.
По идее, разделителители строк и полей и порядок и формат полей
можно задавать специальным файлом формата. Его лучше сделать,
интерактивно, выполняя ВЫГРУЗКУ из таблицы, в которую надо будет
данные загружать (или аналогичную ей, поскольку из #temp таблицы
выгружать не получится - она в другом соединении находится).
Там есть у BCP ключик спец.

Но лучше форматный файл не использовать, лучше
выгрузить данные из загружаемой таблицы (или аналогичной), посмотреть,
как выглядит формат файла, и сделать такой же.

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


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