我正在使用 NodeJS 在 Oracle 数据库中运行查询
await executeQuery(connection, updateStatusQueryFail, {
status: "unmatched",
iban: iban,
NID_MISMATCH: mismatches['nid'],
PASSPORT_MISMATCH: mismatches['passport_number']
PHONE_MISMATCH: mismatches['phone'],
});
mismatches.passport_number
中有阿拉伯语值,上面的查询映射到
const updateStatusQueryFail = `UPDATE DIGX_CZ_CBL_FCMS_ACCOUNT_LIST
SET STATE = :status,
NID_MISMATCH = :NID_MISMATCH,
PASSPORT_MISMATCH = :PASSPORT_MISMATCH,
PHONE_MISMATCH = :PHONE_MISMATCH,
UPDATED_AT= SYSDATE
WHERE IBAN = :iban`;
奇怪的是,当我这样尝试时它不起作用
await executeQuery(connection, updateStatusQueryFail, {
status: "unmatched",
iban: iban,
NID_MISMATCH: mismatches['nid'],
PASSPORT_MISMATCH: mismatches['passport_number'],
PHONE_MISMATCH: mismatches['phone'],
});
但是当我尝试这样的时候就可以了
await executeQuery(connection, updateStatusQueryFail, {
status: "unmatched",
iban: iban,
NID_MISMATCH: mismatches['nid'],
PASSPORT_MISMATCH: 'يجب أن يحتوي النص رقم جواز السفر على 8 حروفٍ/حرفًا بالظبط'
PHONE_MISMATCH: mismatches['phone'],
});
我使用的是 Node 20 版本,带有 oracledb 驱动程序。任何帮助将不胜感激。哦,是的,没有抛出错误。
差不多已经花了4-6个小时了。
您没有在
PASSPORT_MISMATCH
之后添加逗号
await executeQuery(connection, updateStatusQueryFail, {
status: "unmatched",
iban: iban,
NID_MISMATCH: mismatches['nid'],
PASSPORT_MISMATCH: mismatches['passport_number'],
PHONE_MISMATCH: mismatches['phone'],
});
执行此操作后,应将 Oracle 数据库配置为使用包括阿拉伯字符的适当字符集。
此外,请确保正确配置与 Oracle 数据库的连接以处理 Unicode 字符。