我通常对脚本编写和编码还很陌生,并且正在尝试让应用程序执行Python脚本,该脚本从Oracle数据库中获取会话利用率百分比值,并以某个阈值运行它。使用我当前的代码,我收到一个显示为“(XX,)”的元组,我的应用程序尝试将其解析为数字,并且最终的比较是不准确的。
我在StackOverflow上找到了几篇文章,并使用了一些方法,例如通过索引从元组中调用值(例如result_handler.update(RESULTS(0))并将结果作为字符串来尝试过滤标点符号。用于拉取值的索引仅返回整个元组,并且过滤不起作用。
import cx_Oracle
...
conn = cx_Oracle.connect("%s/%s@%s:%s/%s" % (USER,PASSWORD,HOST,PORT,INSTANCE))
cur = conn.cursor()
RESULTS = {}
RESULTS['check_percent'] = []
if self.cred_details['cred_type'] == 2 and self.cred_details['db_type'] == 3:
try:
cur.execute("SELECT ROUND(current_utilization / CAST(limit_value AS NUMBER) * 100,3) AS processes_percent_used FROM v$resource_limit WHERE resource_name = 'processes'")
result = cur.fetchall()
if result:
RESULTS = {check_percent:[]}
for index, value in enumerate(result, start=0):
RESULTS[].append((index, value))
result_handler.update(RESULTS)
...
我们只需要返回实际的数字(如23.45),但是结果以“(23.45,)”的元组形式返回
答案 0 :(得分:0)
对于单列访存,您将使用逗号:
seqval, = cur.fetchone()
我让您将这种技术外推到您的代码中。