• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

员工信息导入[DailyworkswithRuby]

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

上周接到一个小的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,记得听说过类似“不行就迭代”的话,但不记得是谁说的了。对于一些日常琐事来说确实如此。提醒自己写项目代码时可不能这样想。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ruby执行字符串代码发布时间:2022-07-13
下一篇:
[译] Ruby如何访问Excel文件发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap