none
Import aus Oracle Datenbank RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,

    ich habe eine kleine Frage bzgl. eines Imports von Daten aus einer Oracle Datenbank:

    Über ein SSIS-Paket (über den Import-Assistent angelegt) importiere ich Daten aus einer Oracle Tabelle. Dort wurde eine Spalte ursprünglich als varchar angelegt, welche im SQL Server als decimal definiert ist.

    Daraufhin wurde eine View in Oracle erzeugt, in welcher die Werte in Number (15,3) gewandelt werden.

    Die Vorschau im Import Assistent zeigt mir die Werte korrekt an, aber beim Einbuchen im SQL werden sie auf ganze Zahlen gerundet.

    Hat jemand eine Idee, wie ich das verhindern kann?

    Danke und Gruß

    Timo

    Mittwoch, 6. März 2013 17:06

Alle Antworten

  • Hallo Timo,

    hast Du mal versucht, einen Datensatz manuell zu kopieren? Also direkt über:

      INSERT INTO Zieltabelle( ... ) SELECT ... FROM <Linkedserver>...Quellview WHERE ...

    Falls es dann auch nicht funktioniert, liegt es wohl doch noch an der Definition der Spalten.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 6. März 2013 18:08
    Moderator
  • Hallo,

    ich werde es nachher ausprobieren.

    Wie muss die ganze Syntax lauten, wenn ich auf eine View des Oracle Servers zugreifen möchte?

    Gruß

    Timo

    Montag, 11. März 2013 12:07
  • Hallo Timo,
    ich würde es so formulieren:

    [sql]
    Select <Feldliste>
    into <neu_zu_erzeugende_Testtabelle>
    from openquery(<Verbindungsserver>,'Select <Feldliste> from <Name der View>');
    [sql]
     Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    http://www.insidesql.org/blogs/cmu/

    Montag, 11. März 2013 12:17
    Beantworter
  • Bekomme die Meldung:

    Der Server 'RHEPF4LOCAL' wurde in sys.servers nicht gefunden. Prüfen Sie, ob der richtige Servername angegeben wurde. Führen Sie bei Bedarf die gespeicherte Prozedur sp_addlinkedserver aus, um den Server zu sys.servers hinzuzufügen.

    Wie kann ich den server zu sp_addlinkedserver hinzufügen? Müsste ja dann auch ein Benutzer und Passwort hinterlegt werden.

    Irgendwie bekomme ich das Statement nicht zusammen.

    Danke

    ----------------------------------------------------

    Habs hinbekommen:

    USE master
    GO
    EXEC sp_addlinkedserver
       @server = 'RHEPF4LOCAL',
       @srvproduct = 'Oracle',
       @provider = 'OraOLEDB.Oracle',
       @datasrc = 'RHEPF4LOCAL'
    GO
    EXEC sp_addlinkedsrvlogin
    @rmtsrvname = 'RHEPF4LOCAL',
    @useself = 'FALSE',
    @rmtuser = 'user',
    @rmtpassword = 'password'

    Beginne mit den Tests....



    • Bearbeitet TimoB_ Dienstag, 12. März 2013 14:07
    Dienstag, 12. März 2013 12:54
  • Habs nun ausprobiert:

    Die Konvertierung auf Oracle Seite hat nicht funktioniert. Bekam immer noch alle Werte als varchar.

    Ich habe nun jedoch das Konzept geändert. Anstatt mit einem SSIS-Package. Importiere ích die Daten nun per Wartungsplan und T-SQL.

    - Daten aus Oracle in eine temporäre Tabelle kopieren

    - Daten in der Zieltabelle löschen

    - Daten aus der temporären Tabelle mit Konvertierung in die Zieltabelle schreiben

    - Temporäre Tabelle löschen.

    Danke für Eure hilfe.

    Dienstag, 12. März 2013 14:55