none
SSMA Oracle nach SQL Server 2008 - Konvertierungsproblem RRS feed

  • Frage

  • Hallo,

    ich versuche von einer Oracle v9.x Datenbank nur die Tabellen in eine SQL Server 2008 Datenbank zu migrieren. Ich benutze dazu den SSMA für ORACLE in der Version 4.2. Bei einer Tabelle erhalte ich folgende Fehlermeldung:

    "Der angegebene Wert vom Typ String aus der Datenquelle kann nicht in Typ decimal der angegebenen Zielspalte konvertiert werden."

    Wer kann mir helfen, diesen "String" zu finden? Ich habe schon einiges versucht, aber leider ohne Erfolg.

    Besten Dank!

    Gruß, Jürgen

    Donnerstag, 27. Januar 2011 17:01

Antworten

  • Hallo Jürgen,

    generell wird im SQL Server Punkt als Dezimaltrennzeichen benutzt.

    Ich würde in Oracle-Tabellen nach Spalten suchen, wo Zahlen mit Koma als Dezimaltrennzeichen gespeichert sind, und deren Werte beim Import entsprechend konvertieren.


    Gruß Yury

    Donnerstag, 27. Januar 2011 19:33

Alle Antworten

  • use tempdb
    go
    
    if object_id(N't1',N'U') is not null
    drop table t1
    go
    
    create table t1(col1 varchar(55))
    go
    
    insert into t1 values
    ('123.1')
    ,('1'),('2')
    ,('65,7'),('98a')
    ,('t5'),('45tz7654')
    go
    
    select
    	col1
    from
    	t1
    where
    	col1 like '%[^0-9.]%'
    

    Gruß Yury
    Donnerstag, 27. Januar 2011 17:38
  • Hallo Jürgen,

    generell wird im SQL Server Punkt als Dezimaltrennzeichen benutzt.

    Ich würde in Oracle-Tabellen nach Spalten suchen, wo Zahlen mit Koma als Dezimaltrennzeichen gespeichert sind, und deren Werte beim Import entsprechend konvertieren.


    Gruß Yury

    Donnerstag, 27. Januar 2011 19:33
  • Hallo Jürgen

    konnte Yurys Tipp weiterhelfen?

    Gruß
    Andrei

    Montag, 31. Januar 2011 15:20
  • Hallo Yury, hallo Andrei,

    danke für Eure Hilfestellung. In der Zwischenzeit konnte ich den Tipp leider noch nicht ausprobieren, da ich erst morgen wieder Zugriff auf die ORACLE DB habe. Sobald ich es versucht habe, gebe ich hier wieder Bescheid.

    Schönen Gruß,

    Jürgen

    Montag, 31. Januar 2011 15:57
  • Hallo Yury,

    besten Dank, es klappt: Ich habe die Spalten mit Dezimalzahlen in NUMERIC(12,2) konvertiert und die Daten werden korrekt und ohne Fehlermeldung übertragen.

    Schönen Gruß,

    Jürgen
    Dienstag, 1. Februar 2011 00:10
  • Hallo nochmals,

     

    ich habe jetzt eine ORACLE Tabelle, bei der ich während der Migration den Hinweis "Information: Der angegebene Wert vom Typ String aus der Datenquelle kann nicht in Typ decimal der angegebenen Zielspalte konvertiert werden. Der angegebene Wert vom Typ String aus der Datenquelle kann nicht in Typ decimal der angegebenen Zielspalte konvertiert werden." erhalte und kann den STRING der in eine DECIMAL Zahl umgewandelt werden soll, nirgendwo finden. Leider gibt der Migrations Assistent auch keine weitere Hilfestellung, was traumhaft wäre.

    Gibt es einen Weg, diesen STRING bzw. Fehler zu finden? Manuell habe ich bereits 2x die komplette Tabelle abgesucht...

     

    Danke! Gruß Jürgen

    Dienstag, 1. Februar 2011 13:55