2010-10-21 14 views
2

J'ai besoin de charger une valeur Money dans une variable dans SSIS en utilisant un composant "Execute SQL Task". Je mappe la colonne de retour d'un SELECT à une variable. J'ai déclaré la variable « UnknownMoney » comme un lit double ou simple, mais je reçois toujours l'erreur:Quel type de variable utiliser pour représenter un Money dans SSIS

Error: 0xC002F309 at Load Dummy vars, Execute SQL Task: An error occurred while assigning a value to variable "UnknownMoney": "The type of the value being assigned to variable "User::UnknownMoney" differs from the current variable type. Variables may not change type during execution. Variable types are strict, except for variables of type Object.". 

Le type de colonne d'argent dans SSIS est DT_CY (Monnaie), mais ce type ne sont pas disponibles pour les variables .

Quel est le bon type à utiliser pour un Money?

EDIT: le type de variable déroulant dans VS2012 listbox:

variable type listbox 2 variable type listbox 1

Répondre

1

C'est ce que je ferais:

  1. Demandez à SQL retourner une décimale de type avec Select CAST (MoneyColumn AS décimal (34,8)) FROM Table
  2. Set à votre UnknownMoney de type Décimal
  3. Utilisez votre variable UnknownMoney.
  4. Si vous devez utiliser la variable comme l'argent à nouveau, CAST nouveau dans l'argent: CAST (AS @UnknownMoney argent)
1

SSIS a un type de monnaie.

SQL a un type d'argent.

Ce sont compatibles.

+0

Ceci est la bonne réponse. – efesar

+0

Incorrect. J'ai besoin d'une variable pour être de type monétaire. Il n'y a pas de type de devise pour les variables SSIS. – sergiom

+0

oh, je vois. J'ai soumis une autre réponse maintenant que vous avez posté la capture d'écran. – danfolkes

-1

(Juste une petite modification de la réponse de donfolkes)

Dans SSIS tâche d'exécution SQL: select ?=convert(decimal(13,2), MoneyCol). Définissez les paramètres dans SSIS et mappez vers la variable UnknowMoney, mettez également la direction en sortie.

Afin de le renvoyer au SQL le convertir à nouveau en utilisant la fonction de conversion SQL.

+0

J'ai écrit que j'ai besoin d'une variable pour être de type monétaire. Vous ne pouvez pas déclarer une variable comme étant de type DT_CY. – sergiom

Questions connexes