def connect!(*args)
      params = {}
      params[:username] = args.shift if args[0].is_a?(String)
      params[:password] = args.shift if args[0].is_a?(String)
      params[:database] = args.shift if args[0].is_a?(String)
      params.merge!(args.shift) if args[0].is_a?(Hash)
      raise ArgumentError, "Wrong number of arguments" unless args.empty?
      self.connection = Connection.create_new(params)
    end
def connect!(*args)
      params = {}
      params[:username] = args.shift if args[0].is_a?(String)
      params[:password] = args.shift if args[0].is_a?(String)
      params[:database] = args.shift if args[0].is_a?(String)
      params.merge!(args.shift) if args[0].is_a?(Hash)
      raise ArgumentError, "Wrong number of arguments" unless args.empty?
      self.connection = Connection.create_new(params)
    end
Create new OCI8 or JDBC connection using one of the following ways:

   plsql.connect! username, password, database_tns_alias
   plsql.connect! username, password, :host => host, :port => port, :database => database
   plsql.connect! :username => username, :password => password, :database => database_tns_alias
   plsql.connect! :username => username, :password => password, :host => host, :port => port, :database => database