Introducing the sqlparser gem

require 'sqlparser'

s = 'select *' 
a = SqlParser.new(s).to_a 
#=> [[:select_all, {:captures=>[]}, ["SELECT *"], nil]] 

s = 'select surname from employee where emp_id = "405060";'
a = SqlParser.new(s).to_a 
#=> [
      [:select, {:captures=>["surname"], :cols=>"surname"}, ["SELECT surname"], nil], 
      [:from, {:captures=>["employee"], :tables=>"employee"}, ["FROM employee"], nil], 
      [:where, {:captures=>["emp_id = \"405060\";"], :condition=>"emp_id = \"405060\";"}, ["WHERE emp_id = \"405060\";"], []]] 

s = 'select surname, lastname from employee where emp_id = "405060";'
a = SqlParser.new(s).to_a 
#=> [
      [:select, {:captures=>["surname, lastname"], :cols=>"surname, lastname"}, ["SELECT surname, lastname"], nil], 
      [:from, {:captures=>["employee"], :tables=>"employee"}, ["FROM employee"], nil], 
      [:where, {:captures=>["emp_id = \"405060\";"], :condition=>"emp_id = \"405060\";"}, ["WHERE emp_id = \"405060\";"], []]] 

Resources

Tags:
Source:
2139hrs.txt
Published:
05-09-2014 21:39