Cómo insertar (agregar/escribir) datos en la base de datos de SQL Server en una tabla desde JMP dataTable a través de un scriptHola,
Escribí la preparación de datos/limpieza de datos con varias fórmulas/formatos y los datos de salida están listos para insertar (escribir) en el servidor SQL desde la tabla JMP. Me conecté a SQL, pero no pude insertar (agregar) datos a la base de datos del servidor SQL en la tabla de destino. ¿Alguien puede ayudar en esta situación para superar la declaración SQL para agregar? Aquí está mi script final que está listo (JMP Table = "Upload") para escribir.
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 );
secuencias de comandosRe: Cómo insertar (anexar/escribir) datos en la base de datos de SQL Server en una tabla desde JMP dataTable a través de un scriptUtilice el comando show() o write() para mostrar la instrucción sql en la ventana de registro.Copie / pegue eso en un front-end de SQL Server (por ejemplo, SQL Management Studio), eso debería darle mejores mensajes de error.Sospecho que los espacios en blanco son los que te están dando problemas.Descubra cómo hacerlo "manualmente" en el servidor SQL y podrá hacerlo funcionar desde JSL.No tengo SQL Server, así que no puedo solucionar problemas más allá de eso.
Re: Cómo insertar (anexar/escribir) datos en la base de datos de SQL Server en una tabla desde JMP dataTable a través de un scriptHola pmroz,
Me cansé de muchas maneras, no hay ningún mensaje de error. Pero los datos no se insertan en la tabla SQL.
Usé los mismos scripts para otra tabla, eso funciona bien. Los datos de la fila se agregaron correctamente en la tabla de la base de datos. Pero esta tabla tiene solo 2 columnas (campos). Puede ser que funcione correctamente.
Pero cuando me cansé de insertar en "ALL_CUSTOMER", los scripts se ejecutan sin problemas pero los datos no agregados en la base de datos tienen inserción. En tiempo real, tengo muchos espacios en blanco en los valores, puede ser (No estoy seguro) debido a que Insertar no funciona. Aquí adjunto secuencias de comandos completas, propiedades de columna SQL y datos listos para cargar (archivo JMP) en la tabla SQL para su referencia.
¿Puede comprobar las fechas también, si hay algún error?
Completé el 90 % de los scripts, luchando con la carga de datos en SQL, lo que hace que el proyecto esté completo al 100 %.
Gracias por su amable ayuda.
Re: Cómo insertar (anexar/escribir) datos en la base de datos de SQL Server en una tabla desde JMP dataTable a través de un scriptAlgo como esto hará lo que quieras.No estoy manejando fechas, eso requerirá una lógica adicional.No estoy seguro de cómo el servidor SQL maneja las fechas para las inserciones.
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);
Re: Cómo insertar (anexar/escribir) datos en la base de datos de SQL Server en una tabla desde JMP dataTable a través de un scriptGracias..
¿Puede mostrarme SQL con ejecutar SQL con un ejemplo? para que pueda seguir tus pasos y crear scripts de acuerdo a los tuyos.
Re: Cómo insertar (anexar/escribir) datos en la base de datos de SQL Server en una tabla desde JMP dataTable a través de un scriptCreo que SAVE DATABASE sobrescribe la tabla.Si desea agregar datos, puede crear una cadena SQL para múltiples inserciones y ejecutar el SQL con EXECUTE SQL.
Re: Cómo insertar (anexar/escribir) datos en la base de datos de SQL Server en una tabla desde JMP dataTable a través de un scriptLo siento, no agregué el script completo y la tabla de datos que está lista para agregar en mi pregunta inicial.
Aquí adjunté el script y la tabla de datos para agregar en el servidor SQL.
La tabla de datos tiene 224 columnas y también en el orden correcto según la tabla SQL con el mismo nombre de campo. El número de filas cambiará cada vez, así que agregue los datos a SQL mediante una declaración basada en las filas de la tabla upload.jmp.
//Tabla de datos "Cargar" Lista para agregar a 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");
INSERTAR EN [dbo].[TODOS_CLIENTES],
(col1, col2)
VALORES
(col1_valor1, col2_valor1),
(col1_valor2, col2_valor2),
Re: Cómo insertar (anexar/escribir) datos en la base de datos de SQL Server en una tabla desde JMP dataTable a través de un scriptSQL no tiene idea de qué es cargar,
Es posible que puedas hacer
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");
Pero estoy bastante seguro de que en realidad sobrescribiría su tabla sql.
Podrías escribir el sql dinámicamente.Solo para a través de su tabla poner todos los valores en una cadena SQL que luego puede ejecutar.
INSERT INTO [dbo].[ALL_CUSTOMERS]
(col1, col2)
VALUES
(col1_value1, col2_value1),
(col1_value2, col2_value2),