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シェルからもIDE内部でも実行されません。あなたの環境に関する情報を教えてください。 –