0x80040e51 Description: “le Fournisseur ne peut pas dériver les informations de paramètre et SetParameterInfo n'a pas été appelé.”

Je suis en train d'exécuter une requête contre oracle avec la clause where, y compris

BETWEEN date AND date2

Premier tour de la recherche montre que l'oracle fournisseur OLEDB ne permet pas pour les requêtes paramétrées, et elles doivent être établies dans des variables. J'ai donc créé 3 variables. 2 pour tenir mes dates sont remplis correctement, et un autre pour tenir la requête avec l'expression se terminant en:

 BETWEEN to_date('" + (DT_WSTR, 30)@[User::lastRun]  + "','DD/MM/YYYY HH:MI:SS AM') AND to_date('" + (DT_WSTR, 30) @[User::thisRun] + "','DD/MM/YYYY HH:MI:SS AM')"

Lorsque je clique sur "Évaluer l'Expression" dans le générateur d'expression, il évalue correctement à

BETWEEN to_date('1/1/1900','DD/MM/YYYY HH:MI:SS AM') AND
to_date('1/1/2010','DD/MM/YYYY HH:MI:SS AM')

Et je suis en mesure de l'exécuter contre oracle avec succès à l'aide d'autres outils.

Mais lorsque j'essaie d'exécuter le package, je reçois:

[masource Un] Erreur: Code d'Erreur SSIS DTS_E_OLEDBERROR. OLE DB
erreur s'est produite. Code d'erreur: 0x80040E51. Un enregistrement OLE DB est
disponible. Source: "OraOLEDB" Hresult: 0x80040E51 Description:
"Le fournisseur ne peut pas dériver les informations de paramètre et SetParameterInfo a
pas été appelé.".

Où masource est la Source de données OLE DB. Il a c'est AccessMode réglé sur "Commande SQL à Partir d'une Variable" et SQLCommandVariable ma variable de requête.

J'ai aussi essayé de régler manuellement la totalité de la production des colonnes externes, et la modification de certaines des valeurs que j'ai été sélectionné dans la requête ôter l'oracle type de données de DATE:

to_char(PT.CREATED_DTTM,'DD/MM/YYYY HH:MI:SS AM')

Je suis encore assez nouveau pour SSIS, donc je ne suis même pas sûr que je suis de regarder dans le bon place de la racine de cette erreur. N'importe qui ont des idées, où aller à partir d'ici?

Captures d'écran comme demandé. Comme vous pouvez le voir le "à partir d'une variable de la requête" fonctionne comme prévu dans le mode de prévisualisation, mais lorsque je tente de l'exécuter, je reçois l'erreur.

0x80040e51 Description: “le Fournisseur ne peut pas dériver les informations de paramètre et SetParameterInfo n'a pas été appelé.”
0x80040e51 Description: “le Fournisseur ne peut pas dériver les informations de paramètre et SetParameterInfo n'a pas été appelé.”
0x80040e51 Description: “le Fournisseur ne peut pas dériver les informations de paramètre et SetParameterInfo n'a pas été appelé.”

Oui, les 2 premiers sont peuplées par des Tâches d'exécution SQL. Comme je l'ai montré la variable évalue correctement (mais avec des valeurs par défaut de la première des deux dates variables) "Lorsque je clique sur "Évaluer l'Expression' dans le générateur d'expression, il évalue correctement"
Je vais ajouter des captures d'écran demain, lorsque je suis en face arrière de l'ordinateur. Pour l'instant, je peux dire que l'aperçu ne montrons que la requête s'exécute correctement, et le problème a quelque chose à voir avec l'ajouter à OLEDB source.
Ajouté les captures d'écran comme demandé. Je ne suis qu'une cartographie de l'unique Colonne de Sortie pour le moment, jusqu'à ce que cela fonctionne.

OriginalL'auteur slipsec | 2012-05-02