Sij*_*ari 3 python oracle cx-oracle
我正在尝试将Portuguese文本插入到我的表格中。但是,它给出了'ascii' codec can't encode character '\xea'错误。
这是我在做什么:
   os.environ["NLS_LANG"] = ".AL32UTF8"
   query = "INSERT INTO MESSAGE (MESSAGE,LANGUAGE) VALUES (:MESSAGE,:LANGUAGE)"
   data = {'MESSAGE': '..... assistência para ajuda responda AJUDA Sua', 'LANGUAGE': 'Portuguese'}
   cursor = conn.cursor()
   cursor.execute(query, data)
   .....
我的表结构:
CREATE TABLE MESSAGE  (   
    language  VARCHAR2(12) NOT NULL, 
    message  NVARCHAR2(350) NOT NULL
);
我不确定是否需要设置任何内容以将其他字符插入到数据库中。
如果要设置环境变量 NLS_LANG,则必须在创建任何连接之前进行设置;否则,它将不起作用。然而,更好的是使用以下内容来创建连接,因为这不依赖于环境变量:
connection = cx_Oracle.connect("user/password@connectString",
        encoding="UTF-8", nencoding="UTF-8")