2
我最近一直在學習F#和函數式編程。我發現一個非常有用的應用程序是使用一些關聯的ID爲CSV(或Excel表)生成數據加載的SQL插入。F#從CSV生成SQL
下面的代碼是我的結果,我相信我會發現在未來非常方便。我想其他人也可以從中受益,我歡迎建議,人們對收藏已經找到寶貴的其它腳本:
// Returns some dataload SQL for area mapping.
open System
open System.IO
// Read and split CSV into lists
let map_ngo_area = File.ReadAllLines(@"P:\MY_TABLE.csv")
|> Array.to_list
|> List.map(fun x -> (x.Split([|','|])
|> Array.map(fun y -> y.Trim()))
|> Array.to_list)
// Output Formatting function
let format_sql_record = "INSERT INTO MyTable
(ID, REF1_ID, REF2_ID, CreatedUser, CreatedDateTime, LastModifiedUser, LastModifiedDateTime)
VALUES
({0}, {1}, {2}, 'system', getDate(), 'system', getDate())"
// Generate the SQL for the given list.
let generate_sql list = list |> List.mapi(fun index row ->
match row with
| [ngo_id; area_id] -> String.Format(format_sql_record, ((int index)+1), ngo_id, area_id) |> printfn "%s"
| _ -> printfn "")
// Main Execution
map_ngo_area |> generate_sql |> ignore
// End of program, pause to view console output.
System.Console.ReadKey() |> ignore
對提高我的F#代碼或程序有什麼建議?評論也很受歡迎,因爲我在這個範例中是相當新的,轉變的想法並不如我預期的那樣。
謝謝:)
真棒,謝謝KVB他們是一些偉大的祕訣! :) – Russell 2009-12-17 05:24:19