DIAG [S1000] [SAP AG][LIBODBCHDB SO][HDBODBC] 一般错误;-10427 参数/列 (8) 从数据类型 NVARCHAR 到 ASCII 的转换失败

马洛克 roglock

我从 PHP 代码连接到 BBDD HANA。连接器是unixodbc。(表有西班牙字符)

当尝试选择记录时,如果任何字段有特殊字符(例如:欧元字符),它们会跳过提取并登录 odbc:

DIAG [S1000] [SAP AG][LIBODBCHDB SO][HDBODBC] 一般错误;-10427 参数/列 (8) 从数据类型 NVARCHAR 到 ASCII 的转换失败

配置 odbc.ini

[hanadb]
Driver = /usr/sap/hdbclient/libodbcHDB.so
ServerNode = 172.17.xx.xx:31015

(我尝试添加这一行,没有任何改变)

DriverUnicodeType=1
DriverManagerEncoding = UTF-8
Locale = es_ES
characterset=UTF8
IANAAPPCODEPAGE=2026

php中的代码

$result = odbc_exec($link,"SELECT * FROM ZIF_TCONDW ");

while($datos=odbc_fetch_array($result)) {
    $query=sprintf("INSERT INTO condiciones values
   {...}

带有文本的字段:

订单从 701 欧元到 1200 欧元

崩溃,并在跟踪文件中:

DIAG [S1000] [SAP AG][LIBODBCHDB SO][HDBODBC] 一般错误;-10427 参数/列 (8) 从数据类型 NVARCHAR 到 ASCII 的转换失败

我也尝试在选择句子中转换类型

$result = odbc_exec($link,"SELECT LIFNR,ZONA,POSCOND,LEFT(STRTOBIN(CONCEPTO,'UTF-8') ,400) AS CONCEPTO, CONDICION ,ORDEN,AEDAT,AEUHR,AENAM FROM ZIF_TCONDW "); 

或者

$result = odbc_exec($link,"SELECT LIFNR,ZONA,POSCOND,base64_encode(CONCEPTO) AS CONCEPTO, base64_encode(CONDICION) AS CONDICION ,ORDEN,AEDAT,AEUHR,AENAM FROM ZIF_TCONDW ");

无变化。

拉斯·布。

这是 ODBC 驱动程序尝试将 Unicode 数据移交给您的客户端变量时出现的问题。您可能希望设置CHAR_AS_UTF8 = true连接选项以避免这种情况。请参阅SAP HANA 客户端接口编程参考

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章