def showServerParameter(db, param=""): """Shows the server parameters matching the pattern 'param' @param param: pattern to be matched @type param: str @return: resultset in tabular format """ param = addWildCardIfNeeded(param) header = [_("Name"), _("Type"), _("Value"), _("#"), _("Used?"), _("Comments")] #TODO: move this request to pysqlQueries try: result = db.executeAll("""select distinct sp.name , decode(p.type, 1, 'BOOLEAN', 2, 'STRING', 3, 'INTEGER', 4, 'PFILE' , 5, 'RESERVED', 6, 'BIG INTEGER', 'UNKNOWN') type , decode(substr(sp.name, 1, 3), 'nls' , (select value from nls_database_parameters where lower(parameter)=sp.name) , sp.value) value , sp.ordinal , sp.isspecified , p.description from v$spparameter sp, v$parameter2 p where sp.name=p.name and sp.name like '%s' order by 1""" % param) except PysqlException: raise PysqlActionDenied(_("Insufficient privileges")) return (header, result)
def showParameter(db, param=""): """Shows the session parameters matching the pattern 'param' @param param: pattern to be matched @type param: str @return: resultset in tabular format """ param = addWildCardIfNeeded(param) header = [_("Name"), _("Type"), _("Value"), _("#"), _("Session?"), _("System?"), _("Comments")] #TODO: move this request to pysqlQueries try: result = db.executeAll("""select name , decode(type, 1, 'BOOLEAN', 2, 'STRING', 3, 'INTEGER', 4, 'PFILE' , 5, 'RESERVED', 6, 'BIG INTEGER', 'UNKNOWN') type , decode(substr(name, 1, 3), 'nls' , (select value from nls_session_parameters where lower(parameter)=name) , value) value , ordinal , isses_modifiable , issys_modifiable , description from v$parameter2 where name like '%s' order by 1""" % param) except PysqlException: raise PysqlActionDenied(_("Insufficient privileges")) return (header, result)
def searchObject(db, objectType, objectName, objectOwner): """Searches for Oracle objects by name with wildcard if needed""" result = {} objectType = objectType.lower() try: sql = searchObjectSql[objectType][0] keyword = searchObjectSql[objectType][1] if len(objectName.split()) == 1: # Single word search. Just add wildcart % if needed whereClause = "%s like '%s'" % (keyword, addWildCardIfNeeded(objectName)) else: whereClause = generateWhere(keyword, objectName) objects = db.executeAll(sql % (whereClause, objectOwner, keyword)) except KeyError: raise PysqlException(_("SQL entry not defined for searchObjectSql: %s") % objectType) # Returns a dict with key=schemaNAme and Value=list of object for (owner, name) in objects: if result.has_key(owner): result[owner].append(name) else: result[owner] = [name] return result
def test_result_with_various_wildcard(self): for wildcard in ("", "%", "$", "*"): self.assertEqual(wildcard + "cou cou" + wildcard, pysqlhelpers.addWildCardIfNeeded("cou cou", wildcard=wildcard)) self.assertEqual("cou%scou" % wildcard, pysqlhelpers.addWildCardIfNeeded("cou%scou" % wildcard, wildcard=wildcard))
def test_result_with_default_wildcard(self): for answer, question in (("%lala%", "lala"), ("lala%", "lala%"), ("%lala", "%lala"), ("la%la", "la%la")): self.assertEqual(answer, pysqlhelpers.addWildCardIfNeeded(question))