So fügen Sie Daten aus JMP dataTable über ein Skript in eine SQL Server-Datenbank in eine Tabelle ein (anhängen/schreiben).Hallo,
Ich habe ein Skript für die Datenvorbereitung/Datenbereinigung mit verschiedenen Formeln/Formaten erstellt und die Ausgabedaten sind bereit zum Einfügen (Schreiben) in den SQL-Server aus der JMP-Tabelle. Ich habe eine Verbindung zu SQL hergestellt, konnte aber keine Daten in die SQL-Server-Datenbank der Zieltabelle einfügen (anhängen). Kann jemand in dieser Situation helfen, die anzuhängende SQL-Anweisung zu überwinden? Hier ist mein Endskript, das zum Schreiben bereit ist (JMP Table = „Upload“).
Data Table( "ServerData" ) << Join(
With( Data Table( "DataProcessed" ) ),
Merge Same Name Columns,
Copy second table formula( 0 ),
Suppress main table formula evaluation( 0 ),
By Matching Columns( :Individual_Claim_Number_ID_Full = :Individual_Claim_Number_ID_Full ),
Drop multiples( 0, 0 ),
Name( "Include non-matches" )(0, 1),
Preserve main table order( 1 ),
Output Table( "Upload" )
);
dbc = Create Database Connection(
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101"
);
sqlreturn = Execute SQL(
dbc,
"INSERT Upload INTO [dbo].ALL_CUSTOMERS"
);
Close Database Connection( dbc );
DatenzugriffBetreff: Einfügen (Anhängen/Schreiben) von Daten in eine SQL Server-Datenbank in einer Tabelle aus JMP dataTable über ein SkriptVerwenden Sie den Befehl show() oder write(), um die SQL-Anweisung im Protokollfenster anzuzeigen.Kopieren Sie das und fügen Sie es in ein SQL Server-Frontend (z. B. SQL Management Studio) ein – das sollte Ihnen bessere Fehlermeldungen liefern.Ich vermute, dass es die Lücken sind, die Ihnen Probleme bereiten.Finden Sie heraus, wie Sie dies „manuell“ in SQL Server tun, und Sie können es von JSL aus zum Laufen bringen.Ich habe keinen SQL Server und kann daher keine darüber hinausgehende Fehlerbehebung durchführen.
Betreff: Einfügen (Anhängen/Schreiben) von Daten in eine SQL Server-Datenbank in einer Tabelle aus JMP dataTable über ein SkriptHallo pmroz,
Ich habe viele Möglichkeiten satt, es gibt keine Fehlermeldung. Die Daten werden jedoch nicht in die SQL-Tabelle eingefügt.
Ich habe Ihre Skripte auch für eine andere Tabelle verwendet, das funktioniert einwandfrei. Die Daten der Zeile wurden korrekt in die Datenbanktabelle eingefügt. Aber diese Tabelle hat nur 2 Spalten (Felder). Vielleicht funktioniert das richtig.
Aber als ich es satt hatte, in „ALL_CUSTOMER“ einzufügen, liefen Skripte reibungslos, aber Daten, die nicht zur Datenbank hinzugefügt wurden, wurden eingefügt. In Echtzeit habe ich viele Leerzeichen in den Werten. Kann das (nicht sicher) daran liegen, dass das Einfügen nicht funktioniert? Hier füge ich zu Ihrer Referenz vollständige Skripte, SQL-Spalteneigenschaften und Daten hinzu, die zum Hochladen (JMP-Datei) in die SQL-Tabelle bereit sind.
Können Sie auch die Daten überprüfen, falls ein Fehler vorliegt?
Ich habe 90 % der Skripte fertiggestellt und hatte Probleme beim Hochladen der Daten nach SQL, wodurch das Projekt zu 100 % abgeschlossen ist.
Vielen Dank für Ihre freundliche Hilfe.
Betreff: Einfügen (Anhängen/Schreiben) von Daten in eine SQL Server-Datenbank in einer Tabelle aus JMP dataTable über ein SkriptSo etwas wird tun, was Sie wollen.Ich kümmere mich nicht um Daten – das erfordert zusätzliche Logik.Ich bin mir nicht sicher, wie SQL Server Datumsangaben für Einfügungen verarbeitet.
dt = data table ("Upload");
col_list = dt << get column names(string);
col_names = concat items(col_list, ", ");
insert_prefix = evalinsert(
"INSERT INTO [dbo].[ALL_CUSTOMERS] (^col_names^) VALUES ");
dbc = create database connection("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101");
for (i = 1, i <= nrows(dt), i++,
for (k = 1, k <= ncols(dt), k++,
one_col = col_list[k];
one_value = column(dt, one_col)[i];
// Surround strings with single quotes
if (type(one_value) == "String",
one_value = "'" || one_value || "'";
,
// Convert numeric to string, handle missing values (.)
one_value = char(one_value);
if (one_value == ".", one_value = "NULL");
);
if (k == 1,
sql_string = one_value;
,
sql_string = sql_string || ", " || one_value;
);
);
insert_sql = insert_prefix || "(" || sql_string || ")";
show(insert_sql);
// Do the insert. Execute SQL does an implicit commit
execute sql(dbc, insert_sql);
);
close database connection(dbc);
Betreff: Einfügen (Anhängen/Schreiben) von Daten in eine SQL Server-Datenbank in einer Tabelle aus JMP dataTable über ein SkriptDanke..
Können Sie mir SQL mit SQL ausführen anhand eines Beispiels zeigen? damit ich Ihrem Schritt folgen und Skripte entsprechend Ihrem erstellen kann.
Betreff: Einfügen (Anhängen/Schreiben) von Daten in eine SQL Server-Datenbank in einer Tabelle aus JMP dataTable über ein SkriptIch denke, SAVE DATABASE überschreibt die Tabelle.Wenn Sie Daten anhängen möchten, können Sie eine SQL-Zeichenfolge für mehrere Einfügungen erstellen und die SQL mit EXECUTE SQL ausführen.
Betreff: Einfügen (Anhängen/Schreiben) von Daten in eine SQL Server-Datenbank in einer Tabelle aus JMP dataTable über ein SkriptEntschuldigung, ich habe kein vollständiges Skript und keine Datentabelle hinzugefügt, die ich meiner ersten Frage hinzufügen kann.
Hier habe ich das Skript und die Datentabelle zum Anhängen in SQL Server angehängt.
Die Datentabelle hat 224 Spalten und ist ebenfalls in der richtigen Reihenfolge, basierend auf einer SQL-Tabelle mit demselben Feldnamen. Die Anzahl der Zeilen ändert sich jedes Mal. Hängen Sie die Daten daher per Anweisung basierend auf den Zeilen der Tabelle „upload.jmp“ an SQL an.
//Datentabelle „Hochladen“ bereit zum Anhängen an SQL Server
dt << Save DataBase("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101", "dbo.ALL_CUSTOMERS");
INSERT INTO [dbo].[ALL_CUSTOMERS],
(col1, col2)
WERTE
(col1_value1, col2_value1),
(col1_value2, col2_value2),
Betreff: Einfügen (Anhängen/Schreiben) von Daten in eine SQL Server-Datenbank in einer Tabelle aus JMP dataTable über ein SkriptSQL hat keine Ahnung, was Upload ist,
Vielleicht schaffst du es
dt = Data Table( "ServerData" ) << Join(
With( Data Table( "DataProcessed" ) ),
Merge Same Name Columns,
Copy second table formula( 0 ),
Suppress main table formula evaluation( 0 ),
By Matching Columns( :Individual_Claim_Number_ID_Full = :Individual_Claim_Number_ID_Full ),
Drop multiples( 0, 0 ),
Name( "Include non-matches" )(0, 1),
Preserve main table order( 1 ),
Output Table( "Upload" )
);
dt << Save DataBase("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101", "dbo.all_customers");
Aber ich bin mir ziemlich sicher, dass das tatsächlich Ihre SQL-Tabelle überschreiben würde.
Sie könnten die SQL dynamisch schreiben.Nur um durch Ihre Tabelle alle Werte in eine SQL-Zeichenfolge einzufügen, die Sie dann ausführen können.
INSERT INTO [dbo].[ALL_CUSTOMERS]
(col1, col2)
VALUES
(col1_value1, col2_value1),
(col1_value2, col2_value2),