comment passer des paramètres à une ado.net source dans ssis?
C'est l'original de la requête, qui fonctionne à l'aide de ado.net
source et en utilisant le .fournisseurs nets\odbc fournisseur de données spécifié à l'intérieur de la source.
SELECT a.FA_CLNT_ID, a.FA_ACCT_NM, a.ACCT_E_DT, a.POL_PER_CURR_DT, a.POL_PER_NEXT_DT, a.FA_ACCT_NUM, a.GRP_SALES_OFFC_CD, a.ACCT_C_DT
FROM gyv2M.DDM_ACCT_STRUC a
INNER JOIN
(SELECT max(DDM_ACCT_STRUC_TP) as DDM_ACCT_STRUC_TP, FA_CLNT_ID
FROM gyv2M.DDM_ACCT_STRUC
WHERE FA_DM_ROW_DT <= '6/30/2011' AND DM_ROW_E_DT <= '6/30/2011'
GROUP BY FA_CLNT_ID) b
ON a.DDM_ACCT_STRUC_TP = b.DDM_ACCT_STRUC_TP AND a.FA_CLNT_ID = b.FA_CLNT_ID AND FA_DM_ROW_DT <= '6/30/2011' AND a.DM_ROW_E_DT <= '6/30/2011'
mais j'ai besoin de faire automatisée pour que DATE de l'obtention d'une valeur à partir d'une table dans sql server. J'ai créé une variable pour mémoriser la valeur de date, mais je veux utiliser cette variable comme paramètre à passer dans la requête ci-dessus. Malheureusement, je n'ai pas trouvé le mode d'accès aux données : la commande sql à partir d'une variable dans la ado.net source. Je seached d'autres sites internet et constaté que nous pouvons utiliser de l'expression à l'aide de générateur d'expression. rt cliquez sur preperties ..> les expressions ..> etc.. évalué les expressions avec succès. l'expression ressemble à ci-dessous, mais je me suis heurté. Quelle est la prochaine ? Comment puis-je passer l'expression évaluée comme une source de commande en ado.net source ? S'il vous plaît aider.
SELECT a.FA_CLNT_ID, a.FA_ACCT_NM, a.ACCT_E_DT, a.POL_PER_CURR_DT, a.POL_PER_NEXT_DT, a.FA_ACCT_NUM, a.GRP_SALES_OFFC_CD, a.ACCT_C_DT
FROM gyv2M.DDM_ACCT_STRUC a
INNER JOIN
(SELECT max(DDM_ACCT_STRUC_TP) as DDM_ACCT_STRUC_TP, FA_CLNT_ID
FROM gyv2M.DDM_ACCT_STRUC
WHERE FA_DM_ROW_DT <= '@[User::RepDate]' AND DM_ROW_E_DT <= '@[User::RepDate]'
GROUP BY FA_CLNT_ID) b
ON a.DDM_ACCT_STRUC_TP = b.DDM_ACCT_STRUC_TP AND a.FA_CLNT_ID = b.FA_CLNT_ID AND FA_DM_ROW_DT <= '@[User::RepDate]' AND a.DM_ROW_E_DT <= '@[User::RepDate]'
Mise à jour
Salut,
Merci beaucoup pour votre réponse. Comme vous l'avez indiqué, je creeated un utilisateur variable utilisateur:RepDate avec datetime et une tâche d'exécution sql qui attribue datetime pour cette variable RepDate. Et aussi Oui, je suis en mesure d'évaluer l'expression et j'ai pu voir la requête, érigée en l'ado.net source sql en mode commande. voici la requête:
SELECT a.FA_CLNT_ID, a.FA_ACCT_NM, a.ACCT_E_DT, a.POL_PER_CURR_DT, a.POL_PER_NEXT_DT, a.FA_ACCT_NUM, a.GRP_SALES_OFFC_CD, a.ACCT_C_DT
FROM gyv2M.DDM_ACCT_STRUC a
INNER JOIN
(SELECT max(DDM_ACCT_STRUC_TP) as DDM_ACCT_STRUC_TP, FA_CLNT_ID
FROM gyv2M.DDM_ACCT_STRUC
WHERE FA_DM_ROW_DT <= @[User::RepDate] AND DM_ROW_E_DT <= @[User::RepDate]
GROUP BY FA_CLNT_ID) b
ON a.DDM_ACCT_STRUC_TP = b.DDM_ACCT_STRUC_TP AND a.FA_CLNT_ID = b.FA_CLNT_ID AND FA_DM_ROW_DT <= @[User::RepDate] AND a.DM_ROW_E_DT <= @[User::RepDate]
Mais je reçois l'erreur suivante donnée ci-dessous. Je pense que c'est parce que l'intérieur de la requête s'attend à date au format "jj/mm/aaaa" comme je l'ai spécifié dans la requête d'origine..mais nous fournissons un datetime de la variable utilisateur.
Pourriez-vous me dire comment faire pour convertir le format datetime de la variable utilisateur au format spécifié à l'aide de la fonction intégrée de fonctions. J'ai essayé DT_DAte mais pas de chance.
Error at Data Flow Task 4 [ADO NET Source [1]]: The component "ADO NET Source" (1) was unable to retrieve column information for the SQL command. The following error occurred: ERROR [42601] [IBM][CLI Driver][DB2] SQL0104N An unexpected token "[" was found following "". Expected tokens may include: "CONCAT || /MICROSECONDS MICROSECOND SECONDS SECOND MINUTES". SQLSTATE=42601
ADDITIONAL INFORMATION:
Pipeline component has returned HRESULT error code 0xC02020FF from a method call. (Microsoft.SqlServer.DTSPipelineWrap)
BUTTONS:
OK
***Update2***
TITRE: Microsoft Visual Studio
Erreur lors de la Tâche de Flux de Données (ADO NET Source [1]]: Le composant "ADO NET" Source (1) a été impossible de récupérer les informations d'une colonne de la commande SQL. L'erreur suivante s'est produite: ERREUR [22007] [IBM][Pilote CLI][DB2] SQL0180N la syntaxe de La représentation sous forme de chaîne d'une valeur datetime est incorrect. SQLSTATE=22007
INFORMATIONS SUPPLÉMENTAIRES:
Composant de Pipeline a retourné code d'erreur HRESULT 0xC02020FF à partir d'un appel de méthode. (Microsoft.SqlServer.DTSPipelineWrap)
BOUTONS:
OK
double possible de SSIS - Passage de Paramètres à un ADO .NET Source de la requête
OriginalL'auteur user1541398 | 2012-11-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser les étapes suivantes:
les paramètres de la ADO.NET source]
Dataflow
et cliquez surProperties
.SqlCommand
pour votre Source de Données et en utilisant le générateur d'Expression préparer votre requête à l'aide de variables SSIS (variable datetime dans votre cas).Essayer dans votre générateur d'expression: à noter que la variable doit être une chaîne, si elle ne l'est pas, vous utilisez
(DT_WSTR,30)
de le jeter. Puisque vous êtes à l'aide de dates, votre SQL aurez besoin pour gérer une chaîne de format de date, c'est à dire utiliserto_date()
dans Oracle.Espérons que cette aide!
OriginalL'auteur Gowdhaman008
Essayer dans votre générateur d'expression,
Espère que cela fonctionne!
OriginalL'auteur Gowdhaman008