SQL varchar -> float

schmidt206

Commander
Registriert
Dez. 2007
Beiträge
2.062
Hi,

ich füge Daten aus Tab1 in Tab2 per insert ein.
In Tab1 ist ein Feld mit varchar, in Tab2 soll dieses aber ein float sein.

Wie genau ist diese Konvertierung möglich?

Die restlichen Felder sind auch varchar-Felder, die aber per to_number in int konvertiert werden (ich hoffe das ist richtig?).

insert into z_ots_kapodetails select 1, to_number(t1.Auftragsnummer), to_number(t1.Position), t1.VLT, t1.BLT, t1.AM_Termin, to_number(t1.posgew) from otsalt_auftraege t1;

Gruß, schmidt206
 
Es geht wohl um Oracle und da sollte es mit TO_BINARY_FLOAT gehen. Siehe Tabelle 2-12 unter http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/sql_elements002.htm#i55214
Ansonsten könntest du wohl auch die implizite Konvertierung nutzen wenn du ein "select t1.auftragsnummer + 10.0" machst.

Generell ist das Ganze natürlich etwas problematisch wenn es nicht tatsächlich Zahlen sind. Daher würde ich so eine Konvertierung in einer Programmiersprache durchführen und unpassende Daten loggen anstatt sie fehlerhaft einzufügen (wie diese SQL-Funktion es ja macht).
 
Zuletzt bearbeitet:
du kannst auch CAST oder CONVERT benutzen, falls du MS SQL hast ;)
Also generell sollte CAST in jeder SQL server beherrschen.
versuchs einfach. Musst du halt nur angeben was für SQL server du benutzt!
 
Danke!
 
Zurück
Oben