2017-08-11 2 views
3

Gibt es eine Möglichkeit, eine leere Zeichenfolge ('') in eine Spalte des Typs decimal einzufügen?Wie fügt man eine leere Zeichenfolge ('') in SQL Server in Dezimal oder Numerisch ein?

Dies ist für das Beispiel:

create table #temp_table 
(
    id varchar(8) NULL, 
    model varchar(20) NULL, 
    Plandate date NULL, 
    plan_qty decimal (18, 0) NULL, 
    Remark varchar (50) NULL, 
) 

insert into #temp_table (id, model, Plandate, plan_qty, Remark) 
values ('pn-01', 'model-01', '2017-04-01', '', 'Fresh And Manual') 

Ich erhalte einen Fehler

Fehler beim Konvertieren Datentyp varchar in numerischen.

Meine Daten stammen aus einer Excel-Datei und enthält einige leere Zellen.

Meine Abfrage gelesen, dass als leere Zeichenfolge.

Wenn es einen Weg gibt, bitte helfen.

Dank

+0

Was verwenden Sie, um die Daten aus einer Excel-Datei in Ihre Tabelle einzufügen? – Randolph

+0

Ich verwende Bulk Copy zu einer temporären Tabelle und dann fügen Sie die Daten in die Zieltabelle ein. Meine Abfrage, die von meinem Entwickler in VB.Net verwendet wird, und Fehler beim Kompilieren erhalten. aber es ist schon gelöst. Dank für Ihr Interesse. –

Antwort

2

Ihre Kommentare Basierend off Sie benötigen nur eine Case-Anweisung zu Ihrer Einfügen von Excel, die ich verwende offene Abfrage oder Massen einfügen.

Insert into #temp_table (id, model, Plandate, plan_qty, Remark) 
Select 
... 
Case when someColumn = '' then null else someColumn end 
... 
From 
--your excel file via openquery or whatever ... 
+0

danke für deine antwort, ich werde es versuchen –

0

Sie können keinen leeren Zeichenfolge in ein numerisches Feld einfügen. Sie können NULL einfügen:

insert into #temp_table (id, model, Plandate, plan_qty, Remark) 
    values ('112325', '10TPB220MC', '2017-04-01', NULL, 'Fresh And Manual'); 

Natürlich ist die Standardstandardwert ist NULL, so dass man es auch einfach weglassen:

insert into #temp_table (id, model, Plandate, Remark) 
    values ('112325', '10TPB220MC', '2017-04-01', 'Fresh And Manual'); 
+0

danke, ich habe dieses hier versucht und das ist OK. aber meine Daten sind von Excel-Datei und es gibt leere Zelle und meine Abfrage lesen es als leere Zeichenfolge. –

Verwandte Themen