【发布时间】:2023-03-18 11:23:01
【问题描述】:
当使用 cx_Oracle 查询数据库时,我有一列将文本存储为 varchar2。出于某种原因,如果我有“”或类似存储在表中的字符,那么当我查询表时,它会将这些值替换为其等效的 HTML 实体(例如:“
如果我的表中有以下数据:
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>"]
为什么会这样?除了遍历每一列/行并进行查找/替换之外,我怎样才能阻止它发生?
【问题讨论】:
-
你是如何存储数据的?
-
我使用 cx_Oracle 和 Oracle SQL Developer 应用程序插入。这似乎没有什么不同。在 Oracle SQL Developer 中,它正确显示,只是当我从 python 查询时却没有。
-
@AlecRosenbaum:我无法使用 Python 3.5.2 和 cx_Oracle 5.2.1(均为 win-64)重现此问题。既不是来自 python shell,也不是在 IDE 中运行。你能提供一些关于你的环境的信息吗?