Oracle 数据插入引发 'ascii' 编解码器无法对位置 87 中的字符 '\xea' 进行编码:序号不在范围内 (128) 错误
Oracle data insertion raising 'ascii' codec can't encode character '\xea' in position 87: ordinal not in range(128) error
我正在尝试将 Portuguese
文本插入到我的 table 中。但是,它给出了 '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)
.....
我的table结构:
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")
我正在尝试将 Portuguese
文本插入到我的 table 中。但是,它给出了 '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)
.....
我的table结构:
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")