0
當使用cx_Oracle查詢數據庫時,我有一列將文本存儲爲varchar2。出於某種原因,如果我有「<」或「>」或類似於表中存儲的字符,那麼當我查詢表格時,它將用它們的HTML實體替換這些值(例如:「<」變爲「& lt;」 )。例如:cx_Oracle使用HTML實體返回varchar列
如果我在我的表中的下列數據:
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>"]
爲什麼會發生?除了迭代每列/每行並執行查找/替換外,我怎樣才能阻止它發生?
您是如何存儲數據的? – Daniel
我插入了使用cx_Oracle和使用Oracle SQL Developer應用程序。這似乎沒有什麼區別。在Oracle SQL Developer中它正確顯示,而不是當我從python查詢它時。 –
@AlecRosenbaum:我無法用Python 3.5.2和cx_Oracle 5.2.1(都是win-64)重現這一點。無論是從python shell還是在IDE內部運行。你能提供一些關於你的環境的信息嗎? –