class DbMeta::Oracle::MaterializedView
Attributes
build_mode[R]
columns[R]
interval[R]
next_date[R]
query[R]
refresh_method[R]
refresh_mode[R]
rewrite_enabled[R]
Public Instance Methods
extract(args = {})
click to toggle source
# File lib/db_meta/oracle/types/materialized_view.rb, line 40 def extract(args = {}) buffer = [block(@name)] buffer << "CREATE MATERIALIZED VIEW #{@name}(#{@columns.map { |c| c.name }.join(", ")})" buffer << "BUILD #{@build_mode}" buffer << "REFRESH #{@refresh_method} ON #{@refresh_mode}" buffer << "START WITH TO_DATE('#{@next_date}') NEXT #{@interval}" if @interval buffer << "#{@rewrite_enabled} QUERY REWRITE" buffer << "AS" buffer << @query buffer << "/" buffer << nil # materialized view comments if @comment buffer << "COMMENT ON MATERIALIZED VIEW #{@name} IS '#{@comment.gsub("'", "''")}';" buffer << nil end buffer.join("\n") end
fetch(args = {})
click to toggle source
# File lib/db_meta/oracle/types/materialized_view.rb, line 8 def fetch(args = {}) connection = Connection.instance.get cursor = connection.exec("select * from user_mviews where mview_name = '#{@name}'") cursor.fetch_hash do |item| @query = item["QUERY"] @build_mode = item["BUILD_MODE"] @refresh_mode = item["REFRESH_MODE"] @refresh_method = item["REFRESH_METHOD"] @rewrite_enabled = item["REWRITE_ENABLED"] == "Y" ? "ENABLE" : "DISABLE" end cursor.close cursor = connection.exec("select * from user_refresh where rname = '#{@name}'") cursor.fetch_hash do |item| @interval = item["INTERVAL"] @next_date = item["NEXT_DATE"] end cursor.close @columns = Column.all(object_name: @name) # comments on materialized views cursor = connection.exec("select * from user_mview_comments where mview_name = '#{@name}'") cursor.fetch_hash do |item| @comment = item["COMMENTS"] end cursor.close ensure connection.logoff end