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
问题描述
我从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屋!