【发布时间】:2023-03-14 06:44:01
【问题描述】:
我在从 laravel 中使用 CCSID 获取十六进制值的查询返回结果时遇到问题。如果我使用有问题的标识符并将其手动插入到我的 sql 客户端中的查询中,它就可以工作:
SELECT *
FROM TableOne T1
WHERE CAST(T1 . IDENITIFIER AS CHAR(26) CCSID 65535) = x'0213725502A3BC45706AEE6001';
但是,当我在我的 laravel 模型中使用标识符作为参数尝试此操作时,它会出错并显示 x:identifier 而不是 x,然后是字符串:
$sql = "SELECT *
FROM TableOne T1
WHERE CAST(T1 . IDENITIFIER AS CHAR(26) CCSID 65535) = x':identifier'
";
try {
return DB::connection('odbc')->select($sql, [
'identifier' => $identifier
]);
} catch (Exception $e) {
return false;
}
我怎样才能使这个参数与 x 一起正确注入,以便它像手动一样工作?
【问题讨论】: