DIAG [S1000] [SAP AG] [LIBODBCHDB SO] [HDBODBC]常规错误; -10427将参数/列(8)从数据类型NVARCHAR转换为ASCII失败 [英] DIAG [S1000] [SAP AG][LIBODBCHDB SO][HDBODBC] General error;-10427 Conversion of parameter/column (8) from data type NVARCHAR to ASCII failed

查看:401
本文介绍了DIAG [S1000] [SAP AG] [LIBODBCHDB SO] [HDBODBC]常规错误; -10427将参数/列(8)从数据类型NVARCHAR转换为ASCII失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I connect to BBDD HANA from PHP code. The connector is unixodbc. (table have spanish characters)

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

When try to select records, if any field have special characters (ex: euro character) they skip fetch and log in odbc:

DIAG [S1000] [SAP AG] [LIBODBCHDB SO] [HDBODBC]常规错误; -10427将参数/列(8)从数据类型NVARCHAR转换为ASCII失败

DIAG [S1000] [SAP AG][LIBODBCHDB SO][HDBODBC] General error;-10427 Conversion of parameter/column (8) from data type NVARCHAR to ASCII failed

配置odbc.ini

The config odbc.ini

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

(我尝试添加此行,没有任何更改)

(i try to add this line, without any change)

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
   {...}

带有文本的字段:

Pedidos de 701€a 1200€

Pedidos de 701€ a 1200€

崩溃,并在跟踪文件中:

Crash, and in the trace file:

DIAG [S1000] [SAP AG] [LIBODBCHDB SO] [HDBODBC]常规错误; -10427将参数/列(8)从数据类型NVARCHAR转换为ASCII失败

DIAG [S1000] [SAP AG][LIBODBCHDB SO][HDBODBC] General error;-10427 Conversion of parameter/column (8) from data type NVARCHAR to ASCII failed

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

I try too convert type in select sentence

$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客户端接口编程参考.

This is a problem that occurs when the ODBC driver tries to hand over Unicode data to your client variables. You might want to set the CHAR_AS_UTF8 = true connection option to avoid that. See SAP HANA Client Interface Programming Reference.

这篇关于DIAG [S1000] [SAP AG] [LIBODBCHDB SO] [HDBODBC]常规错误; -10427将参数/列(8)从数据类型NVARCHAR转换为ASCII失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆