powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Decimal separator как поменять
7 сообщений из 7, страница 1 из 1
Decimal separator как поменять
    #32030326
Roman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ms-sql 2000. когда заливаю данные в таблицу из текстового файла командой bulk insert происходит ошибка преобразования varchar to numeric, потому как в файле в качесте разделителя для чисел используется запятая, а сервер использует точку. можно ли как-то задать разделить, чтобы он смог корректно конвертнуть строку в число.
...
Рейтинг: 0 / 0
Decimal separator как поменять
    #32030349
Ольга
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
update myTable set dd=replace(MyField,',','.')

Если конечно кол-во запятых в поле 1
...
Рейтинг: 0 / 0
Decimal separator как поменять
    #32030350
Ольга
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения
update myTable set MyField=replace(MyField,',','.')
...
Рейтинг: 0 / 0
Decimal separator как поменять
    #32030421
Strannik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Ольга:

А разве MSSQL не хранит вещественные числа в формате xxx.yyy ?
ИМХО здесь нужно либо менять региональные настройки на сервере либо генерировать входной файл основываясь на существующих настройках.
...
Рейтинг: 0 / 0
Decimal separator как поменять
    #32030513
Ольга
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Strannik
Возможно, я поторопилась, и надо было сказать
Вариант 1.
Открыть файл подходящим редактором текстовых файлов, и заменить запятые на точки
Сделать BULK INSERT
ВАриант 2.
Сделать BULK INSERT в таблицу со столбцами varchar (nvarchar), а только потом
update myTable set MyField=replace(MyField,',','.')
А затем вкачать в нужное поле.
ПРичем второй вариант мне нравится больше.

А насчет региональных настороек могу сказать- на MSSQL не действует (И не должно вроде)

>А разве MSSQL не хранит вещественные числа в формате xxx.yyy
Я надеюсь, что это не тест на базовые знания?
С уважением,
Ольга

To Roman
Я надеюсь, у Вас все получилось.
Всего доброго
...
Рейтинг: 0 / 0
Decimal separator как поменять
    #32030574
Strannik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Ольга:

Прошу прощения, если если я задел Вас своим ответом, просто по долгу работы пришлось долгое время использоваться Bulk import и сталкиваться с проблемой региональных настроек, поэтому увидев данную тему, не мог не ответить.

>Вариант 1.
>Открыть файл подходящим редактором текстовых файлов, и заменить запятые на точки
>Сделать BULK INSERT

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

>ВАриант 2.
>Сделать BULK INSERT в таблицу со столбцами varchar (nvarchar), а только потом
>update myTable set MyField=replace(MyField,',','.')
>А затем вкачать в нужное поле.
>ПРичем второй вариант мне нравится больше

Опять же задача решена в частном случае, а в случае произвольного разделителя прийдется поизвращаться.

Мне больше нравится такой вариант(обобщенный):

CREATE PROCEDURE sp_BULKIMPORT @Separator char(1)
AS
CREATE TABLE #tbl_Test
(id int,
value varchar(255)) -- наше проблемное поле

bulk insert #tbl_Test from 'd:\info.txt'

UPDATE #tbl_Test SET value = Replace(value,@Separator,'.')

insert into RealTable SELECT * FROM #tbl_Test

Drop #tbl_Test
...
Рейтинг: 0 / 0
Decimal separator как поменять
    #32030664
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO
DTS позволит вам совместить предварительную обработку значения, добавляемого в таблицу и BULK INSERT (опция Fast load в Transformation Task)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Decimal separator как поменять
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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