powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Русские буквы при BULK INSERT
15 сообщений из 15, страница 1 из 1
Русские буквы при BULK INSERT
    #38484359
astranexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Пытаюсь загрузить данные из файла, но все что не английское кракозябры

Создаю таблицу
Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE w_ben_gk (
ben_textcode INT,
ben_iso CHAR(2),
ben_regiso CHAR(2),
ben_text NVARCHAR(420)
 
)



выполняю BULK INSERT

Код: sql
1.
2.
3.
4.
5.
BULK INSERT w_ben_gk
   FROM "C:\reverse\bulk.txt"
   
   ;
GO



что не так делаю?
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38484665
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astranexusПытаюсь загрузить данные из файла, но все что не английское кракозябрыНачнём с того, что у вас в файле 8-ми битные "кракозябры", а не юникод-текст
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38484757
Alex Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
astranexus,

загнать булком в одну таблицу. сделать универсальную SQL функцию на перекодировку в уникод для каждого языка и с ней через SELECT, INSERT загнать уже реальные уникодные символы в другую таблицу.
я делал как то общую функцию на польский и русский в уникод. наверное можно сделать одну функцию для всех языков сразу, или разбить на части.
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38484982
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Brown , вы извращенец!

astranexus , укажите правильну кодировку в настройках: WITH CODEPAGE = 'code_page'
BULK INSERT

А переделка из UTF8 в нужную кодировку (UTF16) делайте командой файловой системы.
или через PowerShell или утилитой iconv.
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38485234
Alex Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторAlex Brown, вы извращенец!

да пошел ты
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38485267
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mnior astranexus , укажите правильну кодировку в настройках: WITH CODEPAGE = 'code_page'Дык у него в каждой строке своя кодировка :-)
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38485309
Alex Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
CREATE FUNCTION [dbo].[fn_CharUnicode](@s VARCHAR(4000))
RETURNS NVARCHAR(4000)
BEGIN
  DECLARE @r NVARCHAR(4000)

SELECT @r =
CAST(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(@s COLLATE Latin1_General_CS_AS,
char(221)+char(224)+char(238),NCHAR(UNICODE(N'テ'))) COLLATE Latin1_General_CS_AS,
char(253)+char(232)+char(241),NCHAR(UNICODE(N'ス'))) COLLATE Latin1_General_CS_AS,
char(221)+char(232)+char(169),NCHAR(UNICODE(N'ト'))) COLLATE Latin1_General_CS_AS,
char(221)+char(255)+char(169),NCHAR(UNICODE(N'号'))) COLLATE Latin1_General_CS_AS,
char(217)+char(166)+char(234),NCHAR(UNICODE(N'番'))) COLLATE Latin1_General_CS_AS,
char(210)+char(226)+char(229),NCHAR(UNICODE(N'테'))) COLLATE Latin1_General_CS_AS,
char(210)+char(233)+char(166),NCHAR(UNICODE(N'스'))) COLLATE Latin1_General_CS_AS,
char(254)+char(242)+char(172),NCHAR(UNICODE(N'번'))) COLLATE Latin1_General_CS_AS,
char(213)+char(197)+char(192),NCHAR(UNICODE(N'호'))) COLLATE Latin1_General_CS_AS,
char(210)+char(226)+char(234),NCHAR(UNICODE(N'트'))) COLLATE Latin1_General_CS_AS,
CHAR(143),NCHAR(UNICODE(N'ź'))) COLLATE Latin1_General_CS_AS
as nvarchar(4000))

RETURN @r

END


SELECT dbo.fn_CharUnicode(ben_text) from  w_ben_gk where ben_iso in ('ja', 'ko') and ben_textcode = 501
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38485311
Alex Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жаль иероглифы не вывести в цитату.. в идеале там те символы что на картинке
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38485349
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исходный файл с помощью iconv перекодируется из UTF-8 в UTF-16 и загружается в таблицу обычным bulk insert с опцией datafiletype = 'widechar'. Что и было предложено ТСу на другом форуме.
Никакие приседания с функциями и пр. совершенно ни к чему.
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38485389
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgДык у него в каждой строке своя кодировка :-)Ок, открыл файл, но там нормально всё видно, в чём проблема?
invm подтверждает что кто-то извращенец. ;)
alexeyvg , может ваш редактор подвёл вас?
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #38485579
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mnior alexeyvg , может ваш редактор подвёл вас?А, точно, это я случайно пересохранил файл перед тем как посмотреть :-)

Тогда действительно самое простое , как сказал invm - конвертить в UTF-16 и импортнуть.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Русские буквы при BULK INSERT
    #39618168
akor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работает с CODEPAGE = 'ACP':

BULK INSERT View_for_skkpa1 FROM 'C:\Table1.txt'
WITH (
FIELDTERMINATOR = '\t', --- ','
ROWTERMINATOR = '\n',
CODEPAGE = 'ACP'
);
GO
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Русские буквы при BULK INSERT
    #39931469
Фотография PsyMisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Русские буквы при BULK INSERT
    #40075667
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akor
Работает с CODEPAGE = 'ACP':

BULK INSERT View_for_skkpa1 FROM 'C:\Table1.txt'
WITH (
FIELDTERMINATOR = '\t', --- ','
ROWTERMINATOR = '\n',
CODEPAGE = 'ACP'
);
GO


Вот когда форум реально помог, заработало с CODEPAGE = 'ACP'
...
Рейтинг: 0 / 0
Русские буквы при BULK INSERT
    #40131486
Unit11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PsyMisha, спасибо, CODEPAGE = 65001 работает,например, когда русский текст из блокнота сохраняешь
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Русские буквы при BULK INSERT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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