如何通过脚本将 JMP 数据表中的数据插入(附加/写入)表中的 SQL Server 数据库你好,
我使用各种公式/格式编写了数据准备/数据清理脚本,并且输出数据已准备好从 JMP 表插入(写入)到 SQL 服务器。 我连接到 SQL,但无法将数据插入(追加)到目标表上的 SQL Server 数据库。 任何人都可以帮助解决这种情况来克服 SQL 语句追加。 这是我准备编写的最终脚本(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 );
数据存取回复:如何通过脚本将 JMP 数据表中的数据插入(附加/写入)表中的 SQL Server 数据库使用 show() 或 write() 命令将 sql 语句显示到日志窗口。将其复制/粘贴到 SQL Server 前端(例如 SQL Management Studio)- 这应该会给您更好的错误消息。我怀疑空白是给你带来麻烦的原因。弄清楚如何在 SQL Server 中“手动”执行此操作,您就可以通过 JSL 使其工作。我没有 SQL Server,因此无法排除其他问题。
回复:如何通过脚本将 JMP 数据表中的数据插入(附加/写入)表中的 SQL Server 数据库你好,
我累了很多方法,没有错误信息。 但是数据没有插入到SQL表中。
我在另一个表中使用了相同的脚本,效果很好。 行数据已正确附加到数据库表中。 但这个表只有 2 列(字段)。 可能是正确的。
但是,当我厌倦了在“ALL_CUSTOMER”中插入时,脚本运行顺利,但未添加到数据库中的数据已插入。 实时我的值有很多空白,可能(不确定)是因为插入不起作用? 在这里,我附上了完整的脚本、SQL 列属性和 SQL 表中准备上传的数据(JMP 文件),供您参考。
你也可以检查一下日期,如果有错误的话。
我完成了 90% 的脚本,努力将数据上传到 SQL,这使得项目 100% 完成。
感谢您的热心帮助。
回复:如何通过脚本将 JMP 数据表中的数据插入(附加/写入)表中的 SQL Server 数据库像这样的事情会做你想做的事。我不处理日期 - 这将需要额外的逻辑。不确定 SQL Server 如何处理插入日期。
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);
回复:如何通过脚本将 JMP 数据表中的数据插入(附加/写入)表中的 SQL Server 数据库谢谢..
您能通过示例向我展示 SQL 和执行 SQL 吗?这样我就可以按照您的步骤并根据您的创建脚本。
回复:如何通过脚本将 JMP 数据表中的数据插入(附加/写入)表中的 SQL Server 数据库我认为 SAVE DATABASE 会覆盖该表。如果要追加数据,可以为多次插入创建 SQL 字符串,并使用 EXECUTE SQL 运行 SQL。
回复:如何通过脚本将 JMP 数据表中的数据插入(附加/写入)表中的 SQL Server 数据库抱歉,我没有添加完整的脚本和数据表,这些脚本和数据表已准备好附加在我最初的问题中。
这里我附上了在 SQL Server 中追加的脚本和数据表。
数据表有 224 列,并且基于具有相同字段名称的 SQL 表,顺序正确。 每次行数都会变化,因此根据upload.jmp表行通过语句将数据追加到SQL中。
//数据表“上传”准备追加到SQL Server
dt << 保存数据库("Provider=SQLOLEDB.1;集成安全性=SSPI;持久安全信息=False;初始目录=MAWA_REP;数据源=USFLI-WAS101", "dbo.ALL_CUSTOMERS");
插入[dbo]。[ALL_CUSTOMERS],
(第 1 列,第 2 列)
价值观
(col1_值1,col2_值1),
(col1_值2,col2_值2),
回复:如何通过脚本将 JMP 数据表中的数据插入(附加/写入)表中的 SQL Server 数据库SQL 不知道上传是什么,
你也许可以做
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");
但我很确定这实际上会覆盖你的 sql 表。
你可以动态地编写sql。只是为了通过您的表将所有值放入 SQL 字符串中,然后您可以运行该字符串。
INSERT INTO [dbo].[ALL_CUSTOMERS]
(col1, col2)
VALUES
(col1_value1, col2_value1),
(col1_value2, col2_value2),