Supporto un processo ETL che trasforma gli input di file flat in una tabella di database SqlServer. Il codice è quasi al 100% T-SQL e viene eseguito all'interno del DB. Non possiedo il codice e non posso modificare il flusso di lavoro. Posso solo aiutare a configurare l'SQL "traduzione" che prende i dati del file e lo converte in dati di tabella (ne parleremo più avanti).Conversione/trasmissione di una nVarChar con separatore di virgola in decimale
Ora che le rinunce sono fuori strada ...
Uno dei nostri fornitori di file recentemente cambiato il modo in cui rappresentano un importo monetario '12345.67'
-'12,345.67'
. Il nostro SQL che trasforma il valore assomiglia a SELECT FLOOR(CAST([inputValue] AS DECIMAL(24,10)))
e non funziona più. Ad esempio, la virgola spezza il cast.
Dato che devo memorizzare il valore finale come Decimal (24,10)
tipo di dati (sì, mi rendo conto che il FLOOR
cancella tutte precisione post-decimale-punto - il progettista non era in sintonia con il cliente), cosa posso fare per lanciare questa stringa in modo efficiente? '
Grazie per le vostre idee.
una di queste risposte ha risolto il problema? –
@ KM: sto discutendo di questi suggerimenti con il nostro gruppo DBA ora. Dalla mia parte, l'approccio comune proposto (usando Replace()) sembra funzionare. Aggiornerà presto. – SethO