Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ИЗ Excel в table MSSQL2000 
:(
    Опции темы
TaNK
Дата 1.8.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Всем здрасти - 
Код

declare @name varchar(250);     

set @name = cast(year(getdate())as varchar) + '_' + cast((month(getdate()) - 2) as varchar) + '.xls'

insert into zz_bill_input3
Select * From 
Openrowset('msdasql', 'DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DefaultDir=C:\Documents and Settings\obuhanoe\Мои документы\от Кравченко\' + @name, 
'Select * From [Лист1$]') 

вот такой код не отрабатывает...так во втором аргументе Openrowset нельзя использовать операцию '+', как передать значение строкого типа в Openrowset?


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
TaNK
Дата 4.8.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Вижу никто с этим раньше не сталкивался....блин...жаль.


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
aleksh
Дата 4.8.2008, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



прошу прощение за невежество, а разве нельзя @name задавать сразу с адресом, а не только имя файла? соответственно DefaultDir=@name
PM MAIL   Вверх
TaNK
Дата 4.8.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(aleksh @ 4.8.2008,  10:49)
прошу прощение за невежество, а разве нельзя @name задавать сразу с адресом, а не только имя файла? соответственно DefaultDir=@name

в том то и дело, что параметр внутри Openrowset переменную также использовать нельзя...ошибка та же самая что и при использовании '+'


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
aleksh
Дата 4.8.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



правильно понял -- при Openrowset('msdasql', @name, 'Select * From [Лист1$]') будет ошибка? может тогда попробовать @name объявить как-то по другому, text/ntext например, или еще как-то
PM MAIL   Вверх
TaNK
Дата 4.8.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(aleksh @ 4.8.2008,  11:24)
правильно понял -- при Openrowset('msdasql', @name, 'Select * From [Лист1$]') будет ошибка? может тогда попробовать @name объявить как-то по другому, text/ntext например, или еще как-то

ты правильно понял...тип @name пробывал разный ничего не помогло..


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
aleksh
Дата 4.8.2008, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



а есть возможность завести "временный" екселевский файл, как параметр подставить его имя и предварительно "заливать" в него нужные данные?

обезательно это делать через Openrowset?

Добавлено через 2 минуты и 36 секунд
кстати, а что за ошибку выдает? что пишет?
PM MAIL   Вверх
TaNK
Дата 4.8.2008, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(aleksh @ 4.8.2008,  12:25)
а есть возможность завести "временный" екселевский файл, как параметр подставить его имя и предварительно "заливать" в него нужные данные?

обезательно это делать через Openrowset?

Добавлено @ 12:28
кстати, а что за ошибку выдает? что пишет?

если я не найду выхода с параметром, буду использовать путь прописанный в openrowset, а ошибку он пишет...когда использую @name - Incorrect near @name


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
aleksh
Дата 4.8.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



попытался поискать в яндексе - результат, может поможет
там, в частности предлогалось нечто вроде Openrowset('msdasql', ' +@name+ ', 'Select * From [Лист1$]')

и еще немного об Openrowset в статье

Добавлено через 5 минут и 8 секунд
вот еще несколько вариантов
PM MAIL   Вверх
TaNK
Дата 5.8.2008, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



пробывал по всем примерам..чего то не получилось.


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
aleksh
Дата 5.8.2008, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



мда... 
при поиске часто встречал утверждение что Openrowset и прочие open* -- фишка исключительно ms, мол oracle подобным не богат; отсюда и предположение: может на сервере настройки проверить

хотя, может, глупость пишу, для меня эта тема "пограничная"

самый частый совет на подобную проблему -- использовать прямой адрес, без переменной, посему, видимо, придется использовать "транзитный" екселевский файл
по идее это не так уж и плохо, вдруг, в будущем, встанет вопрос передачи данных из нескольких файлов, а запрос править не надо будет :)

Добавлено через 3 минуты и 49 секунд
только сейчас подумал: а может ему не нравится фрагмент ...[Лист1$]..., мол кириллицу не знает, ему "sheet" или "book" надо?
PM MAIL   Вверх
TaNK
Дата 5.8.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(aleksh @ 5.8.2008,  08:39)
мда... 
при поиске часто встречал утверждение что Openrowset и прочие open* -- фишка исключительно ms, мол oracle подобным не богат; отсюда и предположение: может на сервере настройки проверить

хотя, может, глупость пишу, для меня эта тема "пограничная"

самый частый совет на подобную проблему -- использовать прямой адрес, без переменной, посему, видимо, придется использовать "транзитный" екселевский файл
по идее это не так уж и плохо, вдруг, в будущем, встанет вопрос передачи данных из нескольких файлов, а запрос править не надо будет smile

Добавлено @ 08:43
только сейчас подумал: а может ему не нравится фрагмент ...[Лист1$]..., мол кириллицу не знает, ему "sheet" или "book" надо?

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


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
aleksh
Дата 5.8.2008, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



из чистого любопытства: а ошибка всегда одна и таже была?
PM MAIL   Вверх
TaNK
Дата 5.8.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(aleksh @ 5.8.2008,  10:41)
из чистого любопытства: а ошибка всегда одна и таже была?

да Incorrect near @name или near '+'


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
aleksh
Дата 5.8.2008, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: 1
Всего: 13



видимо конкатенация строк в Openrowset таки не поддерживается, если с этим никто не поспорит и с полным адресом будет работать -- то тему можно закрывать...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.