在R Service與資料庫Table的互動場景中, 最常看到的就是從Table選擇資料, 然後在R Service裡運算與處理, 最後寫入其他的Table中, 所以本篇就來實作這個場景.
首先我們先拿Day06薪資職位核薪表資料的csv匯入到MSSQL裡, 所以在SSMS利用匯入文字檔的功能將csv導入如下
之後會跳底下視窗, 按下Next
接著按下Browse找到csv檔, 再按下Next
接著預覽資料, 沒問題就按下Next
之後修改欄位屬性, 若沒有問題按下Next
最後確認沒問題後, 按下Finish
成功畫面如下, 按下Close
接著用下列程式碼測試一下R Service是能讀到Table經由Select之後傳進來的資料
再來我們新增一個Table讓R Service丟出來的資料可以寫入
接著在R裡, 做一些加工新增三個欄位, L2, L3與L4, 修改程式碼如下, 並用INSERT INTO將資料寫入剛建好的Table裡
不過執行時卻出現下錯誤, 查了以後發現, INSERT INTO的指令不接受RESULT SETS, 解決方式就是用Stored Procedure包起來
https://raresql.com/tag/incorrect-syntax-near-sets/
所以新建一個Stored Procedure如下
再來修改原本寫入Table的程式碼, 順便將寫入的資料也Select出來看看如下
如同前面幾篇所提, R Service與MSSQL互動, 都是透過Stored Procedure, 有鑑於R 與 SQL 資料類型和資料物件有些眉角要注意, 下一篇來研究一下, 避免日後踩雷!