Форум: "Прочее";
Текущий архив: 2017.02.26;
Скачать: [xml.tar.bz2];
ВнизExcel->MS SQL Server Найти похожие ветки
← →
MsGuns © (2016-03-20 15:38) [0]При импорте таблицы Excel (2003) в MS SQL Server (2008) с помощью Сервиса Данных значение некоторых ячеек (10 символов-цифр, первая 9) не попадает в таблицу (NULL). Пробовал напрямую со штатного IDE (что-типа SQL EM) запросом BULK INSERT ... с csv, полученным из самого экселя.
Но две проблемы:
1) надо создавать исходную таблицу с нужным кол-вом полей, что не очень хорошо
2) Проблемы с кодировкой - в БД SQL вместо русских букв заносятся кракозябры.
В справке посмотрел что можно через INSERT .. INTO .. с созданием новой таблицы, но в BULK надо как-то хитро подставлять OPENROWSET, что у меня уже два часа не выходит.
Если можно, помогите с самым простым примером
← →
MsGuns © (2016-03-20 15:39) [1]Поправочка : MS SQL Server 2012
← →
эндсоувот © (2016-03-20 20:19) [2]вариантов примерно миллиард.
первый:
подключить книгу к серверу как файл данных (линкованный источник)
второй:
select *
from openxml(:p_xml_body,"//row")
with (field1 varchar(255) "@field1",
field2 varchar(255) "@field2",
.......
)
третий:
справа от области данных ввести формулу, которая сделает строку вида insert into ... values();
растянуть по высоте, Ctrl+A Ctrl+Ins, дальше вставить в em
....
← →
Amir1 © (2016-03-21 13:10) [3]Параметр IMEX должен быть = 1
SELECT *
into #111
FROM
OPENROWSET
(
"Microsoft.Jet.OLEDB.4.0", "Excel 8.0; HDR=Yes; IMEX=1;
Database=c:\Test.xls", "select * from [Лист1$]"
)
SELECT *
into #222
FROM
OpenDataSource
("Microsoft.Jet.OLEDB.4.0","Data Source="c:\Test.xls";
User ID=Admin;Password=; Extended properties="Excel 8.0; HDR=Yes;
IMEX=1"")...Лист1$
← →
MsGuns © (2016-03-22 12:39) [4]Спасибо за советы.
Все сделал несколько проще (время поджимало, некогда было экспериментировать) - Скачал условно бесплатную SQL Manager Lite for SQL Server и быстренько все сделал :)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2017.02.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c