Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSIS: новый провайдер (MSOLEDBSQL) и параметры / 15 сообщений из 15, страница 1 из 1
18.09.2021, 10:00
    #40098431
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Перетаскиваю пакеты на новый сервер. Там уже нет старых провайдеров и не хотелось бы их ставить (deprecated).
Пробема со связкой Foreach ADO Enumerator (в цикле) и использованием параметров в OLEDB Source внутри цикла.

Код: sql
1.
An ole db record is available. Source: "Microsoft OLE DB provider for SQLserver" Hresult: 0x80004005...



Не хотелось бы переписывать все с нуля и пихать весь запрос в переменную.
Кто-нибудь сталкивался с подобным? Или какие-нибудь идеи?

Заранее спасибо за мысли и советы.
...
Рейтинг: 0 / 0
18.09.2021, 12:45
    #40098442
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Idol_111,

наверное не совсем по существу но у нас при миграции в ажур на большинство проблем отвечали
что собственно сам SSIS концептуально depreciated вместо его переделывания,
просто процесс переписывался на современных технологиях ( ADF вперемешку с Python через функции или DataBricks )
и работа для IT есть, и проблем на порядок меньше (в т.ч. и с обслуживанием/логированием/debug) а гибкости больше.
...
Рейтинг: 0 / 0
18.09.2021, 14:18
    #40098447
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Idol_111,

у разных провайдеров параметризация может отличаться. Не понятно - в чем проблема-то?
...
Рейтинг: 0 / 0
18.09.2021, 20:43
    #40098468
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
vikkiv
и проблем на порядок меньше (в т.ч. и с обслуживанием/логированием/debug)
Проблем наверняка будет больше, т.е. переделывать, что бы продолжало работать, как работало, нужно будет не раз в несколько лет, а как непрерывный процесс.
...
Рейтинг: 0 / 0
18.09.2021, 23:16
    #40098493
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
alexeyvg,

ну если что-то простое то и в MS-DOS наверное можно, хоть ещё десяток лет.
просто сложность и разнообразие задач растут, а инструментарий SSIS уже давно не соответствует
(там же по существу с 2008-го года практически ничего не поменялось?),
C#-овыми скриптовыми элементами постоянно всё писать и дебажить потом - слишком много на разработку тратится и не настолько гибко,
покупать сторонние сборки всё время и изучать их с малой вероятностью применения на др. проектах - выкинутое время на "образование"
хотя действительно - у кого какие классы задач наверное.
что кому-то кактус на который не стоит лезть то другому ценное плодовое растение от опунции и целого ряда напитков..
...
Рейтинг: 0 / 0
19.09.2021, 00:47
    #40098495
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Владислав Колосов
Idol_111,

у разных провайдеров параметризация может отличаться. Не понятно - в чем проблема-то?

Может я чего-нибудь упустил, но параметризация в SQLNCLI и в MSOLEDBSQL должна быть одинаковой согласно документации :

Код: sql
1.
2.
3.
4.
5.
Connection type 	Parameter marker 	Parameter name 	Example SQL command
ADO 	? 	Param1, Param2, ... 	SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = ?
ADO.NET 	@<parameter name> 	@<parameter name> 	SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = @parmContactID
ODBC 	? 	1, 2, 3, ... 	SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = ?
EXCEL and OLE DB 	? 	0, 1, 2, 3, ... 	SELECT FirstName, LastName, Title FROM Person.Contact WHERE ContactID = ?



Оба OLEDB. Подскажите как надо.
...
Рейтинг: 0 / 0
19.09.2021, 00:49
    #40098496
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
alexeyvg
vikkiv
и проблем на порядок меньше (в т.ч. и с обслуживанием/логированием/debug)
Проблем наверняка будет больше, т.е. переделывать, что бы продолжало работать, как работало, нужно будет не раз в несколько лет, а как непрерывный процесс.

Согласен.
SSIS покрывает 98% потребностей и нужды в другом инструментарии я не вижу. Работает годами.
...
Рейтинг: 0 / 0
19.09.2021, 05:31
    #40098505
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Похоже, что MSOLEDBSQL не работает с операторами типа DECLARE, CREATE TABLE если используются параметры.
Т.е. объявить переменную, временную таблицу нельзя.
...
Рейтинг: 0 / 0
19.09.2021, 11:30
    #40098514
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Idol_111
Похоже, что MSOLEDBSQL не работает с операторами типа DECLARE, CREATE TABLE если используются параметры.
Т.е. объявить переменную, временную таблицу нельзя.

Почему вы сделали таколй вывод?
У меня работает, по крайней мере DECLARE точно.
Код: sql
1.
2.
DECLARE @var INT;
SELECT  @var = ? 


Передаю в скрипт значение из переменной без проблем.

P.S. С времеными таблицами были проблемы, приходилось переделывать на табличные переменные.
...
Рейтинг: 0 / 0
19.09.2021, 12:10
    #40098515
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Idol_111,

для некоторых драйверов параметры можно передать знаком вопроса, для некоторых @0, @1 может еще как-то можно. MS для связи с SQL рекомендует использовать OLEDB for SQL. В некоторых случаях я использовал ODBC, но с параметризацией проблем никогда не было.

Перечитал внимательно, причет тут DECLARE так и не понял. Или Вы процедуры принципиально не используете? Если вы используете SSIS как средство DDL, то, по-моему мнению, оно не предназначено для этого. Прямое назначение SSIS - это выполнение ETL задач.
...
Рейтинг: 0 / 0
20.09.2021, 00:29
    #40098566
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
SQL2008
Idol_111
Похоже, что MSOLEDBSQL не работает с операторами типа DECLARE, CREATE TABLE если используются параметры.
Т.е. объявить переменную, временную таблицу нельзя.

Почему вы сделали таколй вывод?
У меня работает, по крайней мере DECLARE точно.
Код: sql
1.
2.
DECLARE @var INT;
SELECT  @var = ? 


Передаю в скрипт значение из переменной без проблем.

P.S. С времеными таблицами были проблемы, приходилось переделывать на табличные переменные.

Вы это делали внутри цикла?

Я лишь делаю выводы на основе фактов. У меня не работает, но OLEDB source внутри ADO цикла (как описанно выше). Он просто не понимает синтаксис.

А какие пути использовали с табличными переменными?
...
Рейтинг: 0 / 0
20.09.2021, 00:57
    #40098568
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Владислав Колосов
Idol_111,

для некоторых драйверов параметры можно передать знаком вопроса, для некоторых @0, @1 может еще как-то можно. MS для связи с SQL рекомендует использовать OLEDB for SQL. В некоторых случаях я использовал ODBC, но с параметризацией проблем никогда не было.

Перечитал внимательно, причет тут DECLARE так и не понял. Или Вы процедуры принципиально не используете? Если вы используете SSIS как средство DDL, то, по-моему мнению, оно не предназначено для этого. Прямое назначение SSIS - это выполнение ETL задач.

Про параметры и провайдеров было подробно выше.

Стандартная схема: объявляешь временную таблицу, запихиваешь в нее результат из ХП и затем используешь в выборке.
Если Вы можете предложить проще вариант вытаскивания данных из ХП, буду благодарен.
...
Рейтинг: 0 / 0
20.09.2021, 04:42
    #40098578
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
SQL2008

P.S. С времеными таблицами были проблемы, приходилось переделывать на табличные переменные.

Уточню.
Табличные переменные не работают как и временые таблицы. Думаю, как вообще от этого избавиться.

Может быть проблема в клиенте, которым пакеты правишь? У меня VS2019 с расширением.
...
Рейтинг: 0 / 0
20.09.2021, 12:08
    #40098640
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Idol_111,

не совсем понимаю ход Ваших мыслей, но результат ХП можно вернуть в набор данных, а затем этот набор обработать средствами SSIS. Если это неприемлемо, то создайте процедуру - обёртку с использованием временной таблицы.
...
Рейтинг: 0 / 0
20.09.2021, 12:31
    #40098648
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS: новый провайдер (MSOLEDBSQL) и параметры
Idol_111

Табличные переменные не работают как и временные таблицы. Думаю, как вообще от этого избавиться.

временные таблицы использовал в SSIS никаких проблем не возникало.
про табличные переменные не помню, но не думаю, что должны быть какие-то проблемы
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSIS: новый провайдер (MSOLEDBSQL) и параметры / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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