Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Подскажите пожалуйста.

Устал пользоваться загрузкой Management studio.

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

Такое может сделать?

Заранее спасибо.
14 дек 11, 12:07    [11762823]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Vaja
Member

Откуда:
Сообщений: 49
Teslenko Sergey,

OPENROWSET;
OPENDATASOURCE
14 дек 11, 12:17    [11762893]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Нарисовать SIS пакет
14 дек 11, 12:22    [11762931]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Vaja,

На MSDN нашёл интересную статейку, там вроде всё понятно как создавать новую таблицу в SQL, но не написано как загрузить в существующую. Конечно можно использовать и эту. Но хотелось бы сразу.
14 дек 11, 12:27    [11762971]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Teslenko Sergey,

http://support.microsoft.com/kb/321686
14 дек 11, 12:27    [11762974]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
Teslenko Sergey
Vaja,

На MSDN нашёл интересную статейку, там вроде всё понятно как создавать новую таблицу в SQL, но не написано как загрузить в существующую. Конечно можно использовать и эту. Но хотелось бы сразу.
В примерах их этой статьи замените
SELECT * INTO XLImport2 FROM ...

на
INSERT XLImport2(список полей) SELECT список полей FROM ...
14 дек 11, 12:38    [11763075]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
alexeyvg,

А как выбрать лист из книги Excel?
14 дек 11, 12:52    [11763239]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
Teslenko Sergey
А как выбрать лист из книги Excel?

В ссылке же написано ?
14 дек 11, 12:55    [11763267]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Glory,

И ничего не работает. Говорит что нет такого файла, хотя путь указан верно.
14 дек 11, 15:46    [11765152]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
SSIS
Guest
Maxx
Нарисовать SIS пакет

+100500
14 дек 11, 15:48    [11765169]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18328
Teslenko Sergey
Glory,

И ничего не работает. Говорит что нет такого файла, хотя путь указан верно.
Путь надо указать исходя из того, что ты находишься на сервере.
14 дек 11, 15:49    [11765185]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
Teslenko Sergey
Говорит что нет такого файла, хотя путь указан верно.

Файла должен быть там, где его ждет сервер. А не там, куда вы захотели его положить
14 дек 11, 15:50    [11765194]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Glory,

Да всё указал или блокирует или говорит, что нет такого файла.
14 дек 11, 18:34    [11766828]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
Teslenko Sergey
Да всё указал

Значит не все. Или не так
14 дек 11, 18:36    [11766837]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Glory,

Вот что пишет:
A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)

А вот перевод

Транспортного уровня произошла ошибка при отправке запроса на сервер. (поставщик: Shared Memory, ошибка:. 0 - Нет процесс на другом конце трубы)
14 дек 11, 18:43    [11766891]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Teslenko Sergey,

Что делать шеф

Использую вот такой запрос:


SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source = E:\TESTFILE.xls;Extended Properties=Excel 8.0')...[list_1$]
14 дек 11, 18:44    [11766902]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
Teslenko Sergey
А вот перевод

Транспортного уровня произошла ошибка при отправке запроса на сервер. (поставщик: Shared Memory, ошибка:. 0 - Нет процесс на другом конце трубы)

Вы предлагаете по этому переводу узнать
- откуда и как был вами установлен коннект с сервером
- версию сервера
- выполняемый вами код
14 дек 11, 18:45    [11766912]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Glory,

SELECT * INTO dbo.XLImport3 FROM OPENDATASOURCE('SQLXMLOLEDB.4.0',
'Data Source = E:\TESTFILE.xls;Extended Properties=Excel 8.0')...[list_1$]

Microsoft SQL Server Enterprise Edition 9.00.1399.06

Система Microsoft Windows NT 5.2 (3790)
14 дек 11, 18:50    [11766944]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
работаю локально, на серваке, так что точно всё должно работать. Но нет.
14 дек 11, 18:51    [11766950]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Teslenko Sergey,

Настройки сервака вот:

Ad Hoc Distributed Queries 0 1 1 0
affinity I/O mask -2147483648 2147483647 0 0
affinity mask -2147483648 2147483647 0 0
Agent XPs 0 1 1 1
allow updates 0 1 0 0
awe enabled 0 1 1 1
blocked process threshold 0 86400 0 0
c2 audit mode 0 1 0 0
clr enabled 0 1 0 0
cost threshold for parallelism 0 32767 5 5
cross db ownership chaining 0 1 0 0
cursor threshold -1 2147483647 -1 -1
Database Mail XPs 0 1 0 0
default full-text language 0 2147483647 1033 1033
default language 0 9999 0 0
default trace enabled 0 1 1 1
disallow results from triggers 0 1 0 0
fill factor (%) 0 100 0 0
ft crawl bandwidth (max) 0 32767 100 100
ft crawl bandwidth (min) 0 32767 0 0
ft notify bandwidth (max) 0 32767 100 100
ft notify bandwidth (min) 0 32767 0 0
in-doubt xact resolution 0 2 0 0
index create memory (KB) 704 2147483647 0 0
lightweight pooling 0 1 0 0
locks 5000 2147483647 0 0
max degree of parallelism 0 64 0 0
max full-text crawl range 0 256 4 4
max server memory (MB) 16 2147483647 2147483647 2147483647
max text repl size (B) 0 2147483647 65536 65536
max worker threads 128 32767 0 0
media retention 0 365 0 0
min memory per query (KB) 512 2147483647 1024 1024
min server memory (MB) 0 2147483647 0 8
nested triggers 0 1 1 1
network packet size (B) 512 32767 4096 4096
Ole Automation Procedures 0 1 1 1
open objects 0 2147483647 0 0
PH timeout (s) 1 3600 60 60
precompute rank 0 1 0 0
priority boost 0 1 1 1
query governor cost limit 0 2147483647 0 0
query wait (s) -1 2147483647 -1 -1
recovery interval (min) 0 32767 0 0
remote access 0 1 1 1
remote admin connections 0 1 0 0
remote login timeout (s) 0 2147483647 20 20
remote proc trans 0 1 0 0
remote query timeout (s) 0 2147483647 600 600
Replication XPs 0 1 0 0
scan for startup procs 0 1 0 0
server trigger recursion 0 1 1 1
set working set size 0 1 0 0
show advanced options 0 1 0 1
SMO and DMO XPs 0 1 1 1
SQL Mail XPs 0 1 0 0
transform noise words 0 1 0 0
two digit year cutoff 1753 9999 2049 2049
user connections 0 32767 0 0
user options 0 32767 0 0
Web Assistant Procedures 0 1 0 0
xp_cmdshell 0 1 0 0
14 дек 11, 18:52    [11766959]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
1. пропатчить сервер
2. соединяться по другому протоколу, не по Shared Memory
3. выполнить exec master..xp_cmdshell 'dir E:\*.xls'
14 дек 11, 19:00    [11767008]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Glory,

Интересно, это как!!! Переписать сборщик, это уже он определяет протокол. А не я, я всего пишу к нему запрос и всё. :-)
14 дек 11, 19:02    [11767016]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
Teslenko Sergey
Переписать сборщик, это уже он определяет протокол.

Какой еще сборщик ?
Протокол определяет клиент.
14 дек 11, 19:03    [11767025]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Teslenko Sergey
Member

Откуда:
Сообщений: 182
Glory,

Ну дык вот он мой протокол "Microsoft.Jet.OLEDB.4.0" на что его заменить?
14 дек 11, 19:07    [11767045]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли написать процедуру для автоматической загрузки XLS формата в БД SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
Teslenko Sergey
Ну дык вот он мой протокол "Microsoft.Jet.OLEDB.4.0"

Это не протокол.
14 дек 11, 21:42    [11767769]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить