ORA-01722:无效的数字,SQL in子句

时间:2019-04-18 07:15:18

标签: php sql oracle

我有以下查询:

$query = "delete from document where document_lientype =:lienType and document_lienid =:lienId and document_id not in (:docsIds)";
$params = array(
    'lienType' => $lienType,
    'lienId'   => $lienId,
    'docsIds'  => implode(',',$docsIds)
);

当我转储$docsIds时,我得到:

array(3) {
  [0] =>
  int(19357)
  [1] =>
  int(19358)
  [2] =>
  int(19378)
}

当我转储implode(',',$docsIds)时,我得到:

string(17) "19357,19358,19378"

在项目中运行查询时,出现错误ORA-01722: invalid number,这意味着它无法将docsIds转换为整数。

当我在TOAD中运行查询时,它可以正确执行;因此问题出在该in子句中。

我试图以我能想到的所有方式构造字符串,包括:"'19357','19358','19378'",但仍然出现相同的错误。

0 个答案:

没有答案