SqlParser
SQL Parser for Oracle
Installation
Add this line to your application's Gemfile:
gem 'sql_parser'
And then execute:
$ bundle
Or install it yourself as:
$ gem install sql_parser
Usage
query = "select 1 from dual"
parser = SqlParser::Oracle::OracleParser.new
syntax_tree = parser.parse query
if syntax_tree
= "\n#{query}\n" + " " * (parser.failure_column.to_i-1) + "*\n"
raise parser.failure_reason +
end
ast = syntax_tree.ast
irb(main):008:0> ast
=> #<SqlParser::Ast::SelectStatement
:subquery => #<SqlParser::Ast::Subquery
:query_block => #<SqlParser::Ast::QueryBlock
:hint => nil,
:modifier => nil,
:select_list => #<SqlParser::Ast::Array [
#<SqlParser::Ast::NumberLiteral {:value=>"1"}>
]>
,
:select_sources => #<SqlParser::Ast::Identifier {:name=>"dual"}>,
:where_clause => nil,
:group_by_clause => nil,
:model_clause => nil}>
,
:order_by_clause => nil}>
,
:for_update_clause => nil}>
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/jksy/sql_parser.