当使用cx_Oracle查询数据库时,我有一个存储文本为varchar2的列。出于某种原因,如果我有“<”或“>”或者像存储在表中的那些字符,然后当我查询表时,它用它们的HTML实体等效替换那些值(例如:“<”变为“& lt;”)。例如:
如果我的表中有以下数据:
ID | VARCHAR2_DATA
----|-----------------
1 | <span>hi1</span>
2 | <span>hi2</span>
然后我运行以下代码:
import cx_Oracle
conn = cx_Oracle.connect(DATABASE_CONNECTION_STRING)
cursor = conn.cursor()
cursor.execute("SELECT * FROM TABLE")
ret_data = cursor.fetchall()
ret_data将包含:
[1, "<span>hi1</span>"],
[2, "<span>hi2</span>"]
为什么会这样?除了遍历每个列/行并进行查找/替换之外,我怎么能阻止它发生呢?
答案 0 :(得分:0)
为了做到这一点,你必须在cx_Oracle和你的代码之间使用某种代码。返回数据时,cx_Oracle返回元组而不是列表。如下所示:
[(1, '<span>hi1</span>'), (2, '<span>hi2</span>')]
尝试在命令提示符下使用python,而不导入任何其他模块。您可以使用命令
检查要导入的模块python -v