class Multiwoven::Integrations::Destination::Oracle::Client

def discover(connection_config)

def discover(connection_config)
  records = []
  connection_config = connection_config.with_indifferent_access
  query = "SELECT table_name, column_name, data_type, nullable
           FROM all_tab_columns
           WHERE owner = '#{connection_config[:username].upcase}'
           ORDER BY table_name, column_id"
  conn = create_connection(connection_config)
  cursor = conn.exec(query)
  while (row = cursor.fetch)
    records << row
  end
  catalog = Catalog.new(streams: create_streams(records))
  catalog.to_multiwoven_message
rescue StandardError => e
  handle_exception(
    "ORACLE:DISCOVER:EXCEPTION",
    "error",
    e
  )
end