員工資訊匯入[Daily works with Ruby]

來源:互聯網
上載者:User

上周接到一個小的Case,將一些盤點的員工資料匯入至資料庫。我開啟郵件中的Excel,原始資料格式如下:

ID FirstName LastName
123 Jerry Chou

我需要做的是將該資料匯入資料庫。 資料庫中的表格列為:
ID Name

我的工作也很簡單:

1,將Excel匯出成CSV(Comma Separated Value) 。

2,將 123,Jerry,Chou 的第二個逗號去掉,形成這樣的格式: 123,JerryChou。

3,將 123,JerryChou 匯入至資料庫。

 

任務1很簡單,會用Exel都可以做到。

 

任務2,我寫了一個Ruby小指令碼,如下:

in_file = File.new('pi_user_import.csv')
out_file=File.new("formatted_user.csv","w") 

in_file.each_line do |line|
    v1,v2,v3 = line.split(',')
    puts "#{v1.strip},#{v2.strip}#{v3.strip}\n"
    puts out_file.write("#{v1.strip},#{v2.strip}#{v3.strip}\n")
end

任務3,仍然是一個小指令碼。

require 'OCI8'

conn = OCI8.new('DBUser','UserPass','TNSName')
cursor = conn.parse("INSERT INTO CPI_USER(ID,UNAME) VALUES (:1,:2)")

in_file = File.new('formatted_user.csv')
row_num  = 0
in_file.each_line do |line|
    v1,v2 = line.split(',')
    puts "#{v1},#{v2}"
    
    cursor.bind_param(1, v1.strip)
    cursor.bind_param(2, v2.strip)
    cursor.exec()
    row_num = row_num+1
end
puts row_num.to_s + ' rows were processed.'

cursor.close()
conn.commit
conn.logoff

###############Imported Checking#####################
#num_rows = conn.exec('select * from pi_user') do |r|
#    puts r.join(',')
#end
#puts num_rows.to_s + ' rows were processed.'
###############End Checking##########################

 註:你可以從:http://rubyforge.org/projects/ruby-oci8/ 擷取Ruby-OCI8.

 個人體會:

1,我很久沒有寫Ruby的玩具代碼了,但遇到具體任務,用Ruby寫個小指令碼來完成任務還是很簡單的。

2,Ruby指令碼對Oracle的支援也還不錯。

3,記得聽說過類似“不行就迭代”的話,但不記得是誰說的了。對於一些日常瑣事來說確實如此。提醒自己寫項目代碼時可不能這樣想。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.