使用 SQL 大量同步
動詞:sqlBulkSynchronize
可用來源: <Enterprise>
在兩個表格之間執行大量同步化作業,以便資料庫中的所有目標表格值都與來源表格中的目標表格值相同。
語法
sqlBulkSynchronize --dataTable(DataTable) --connection(DbConnection) --tablename(String) [--batchsize(Numeric)] [--mappings(String)] [--timeout(TimeSpan)] (Boolean)=value
輸入
Script | 設計工具 | 必要 | 接受的類型 | 說明 |
---|---|---|---|---|
--dataTable | 資料表 | 必要 | 資料表 | 將作為參照以與資料庫表格保持同步化的來源資料表。 |
-- connection | 連線 | 必要 | 資料庫連線 | 資料庫連線變數。 對於此連線,提供了下列選項: |
--tablename | 表格名稱 | 必要 | Text | 資料庫表格的名稱。 |
--batchsize | 批次大小 | 選用項目 | 數字 | 表示每個批處理一次同步的資料數量的數字。 |
--mappings | 對映 | 選用項目 | Text | 使用 SQL 表格值來對映給定的資料表格直欄。 新增對映時,您會找到下列欄位:- 直欄名稱: 您要對映的 資料表 直欄名稱;- 直欄號碼: 您要對映的 資料表 直欄號碼。 直欄號碼從 1 開始;-未命名欄位: 指 SQL 表格直欄名稱。只能在直欄名稱或直欄號碼其中一個欄位輸入一值。 |
--timeout | 逾時值 | 選用項目 | 時間跨距、數字、文字 | 等待建立連線和同步資料的最長時間。 |
輸出
Script | 設計工具 | 接受的類型 | 說明 |
---|---|---|---|
價值 | 成功 | 布林值 | 如果執行成功,則傳回 "True" ;否則,傳回 "False"。 |
範例
使用 SQL 大量同步 指令會對映資料表的值,並與 MySQL 連線 指令所連接資料庫中的 "book" 表格同步。 執行後,會根據需要更新(插入、刪除或新建)資料庫表格中的值。
defVar --name connection --type DbConnection
defVar --name tableDataBooks --type DataTable
defVar --name fileExcelDataBooks --type Excel
defVar --name tableBooks --type DataTable
// Connect to mysql.
mysqlConnect --connectionstring "Data Source = 127.0.0.1; User ID = root; Password = \" \""
// Create the database "bdTechnology" and the table "book".
sqlExecuteReader --connection ${connection} --statement "CREATE DATABASE bdTechnology; \r\nUSE bdTechnology; \r\nCREATE TABLE book (id INT NOT NULL AUTO_INCREMENT, price DOUBLE, title EXT, author TEXT, publisher TEXT, numPage INT, language CHAR (2), PRIMARY KEY (id)); "
// Download the following file to execute the command.
excelOpen --file "excelTableDataBooksInsert_Synchronize.xlsx" fileExcelDataBooks=value
excelGetTable --file ${fileExcelDataBooks} --getfirstsheet --entiretable --hasheaders tableDataBooks=value
// Inserts data into the database.
sqlBulkInsert --dataTable ${tableDataBooks} --connection ${connection} --tablename book
sqlExecuteReader --connection ${connection} --statement "select * from book;" tableDataBooks=value
logMessage --message "DATABASE AFTER INSERTION: ${tableDataBooks}" --type "Info"
// DATABASE AFTER INSERTION:
// 1 59.99 The Master: How the Search for the Ultimate Machine Learning Algorithm Will Recreate Our World Pedro Domingos Novatec 344 EN
// 2 30 Steve Jobs Walter Isaacson Simon & Schuster 656 EN
// 3 120 Elon Musk: How the billionaire CEO of SpaceX and Tesla is shaping our future Ashlee Vance Intrinsic 416 EN
// 4 200 Brief answers to big questions Stephen Hawking Intrinsic 256 EN
// Download the following file to execute the command.
excelOpen --file "excelTableDataBooksInsert_Synchronize.xlsx" fileExcelDataBooks=value
excelGetTable --file ${fileExcelDataBooks} --getfirstsheet --entiretable --hasheaders tableDataBooks=value
logMessage --message "TABLE TO SYNC: \r\n ${tableDataBooks}" --type "Info"
// TABLE TO SYNC:
// 1 59.99 The Master Algorithm: How the Search for the Ultimate Machine Learning Algorithm Will Recreate Our World Pedro Domingos Novatec 344 EN
// 2 200 Steve Jobs Walter Isaacson Simon & Schuster 656 EN
// 3 120 Elon Musk: How the billionaire CEO of SpaceX and Tesla is shaping our future Ashlee Vance Intrinsic 416 EN
//
// 5 150 Artificial intelligence Peter Norvig GEN LTC 1016 AL
// 6 152 Astrophysics for hasties Neil Degrasse Tyson Planet 192 AL
sqlBulkSynchronize --dataTable ${tableDataBooks} --connection ${connection} --tablename book --mappings "number=1=id,number=2=price,number=3=title,number=4=author,number=5=publisher,number=6=numPage,number=7=language"
sqlExecuteReader --connection ${connection} --statement "SELECT * FROM book" tableBooks=value
logMessage --message "DATABASE AFTER SYNCHRONIZATION: ${tableBooks}" --type "Info"
// DATABASE AFTER SYNCHRONIZATION:
// 1 59.99 The Master Algorithm: How the Search for the Ultimate Machine Learning Algorithm Will Recreate Our World Pedro Domingos Novatec 344 EN
// 2 200 Steve Jobs Walter Isaacson Simon & Schuster 656 EN
// 3 120 Elon Musk: How the billionaire CEO of SpaceX and Tesla is shaping our future Ashlee Vance Intrinsic 416 EN
// 5 150 Artificial intelligence Peter Norvig GEN LTC 1016 AL
// 6 152 Astrophysics for hasties Neil Degrasse Tyson Planet 192 AL
sqlExecute --connection ${connection} --statement "DROP DATABASE bdtechnology"
下載檔案
若要讓 Script 正常運作,您需要下載檔案,並在 開啟 Office 檔案 指令的 檔案路徑 參數中輸入其路徑。