如何通過腳本將 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),