Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle “问题”;ORA-01722:无效编号“;已在多个位置创建错误_Oracle_Drupal_Drupal 7_Drupal Modules_Ora 01722 - Fatal编程技术网

Oracle “问题”;ORA-01722:无效编号“;已在多个位置创建错误

Oracle “问题”;ORA-01722:无效编号“;已在多个位置创建错误,oracle,drupal,drupal-7,drupal-modules,ora-01722,Oracle,Drupal,Drupal 7,Drupal Modules,Ora 01722,使用Oracle驱动程序时,我在许多地方遇到错误“ORA-01722:无效号码”。你能指出解决方法/解决方案吗 PDOException: SELECT base.fid AS fid, base.uid AS uid, base.filename AS filename, base.uri AS uri, base.filemime AS filemime, base.filesize AS filesize, base.status AS status, base.times

使用Oracle驱动程序时,我在许多地方遇到错误“ORA-01722:无效号码”。你能指出解决方法/解决方案吗

PDOException: SELECT base.fid AS fid, base.uid AS uid,
    base.filename AS filename, base.uri AS uri, base.filemime AS filemime,
    base.filesize AS filesize, base.status AS status, base.timestamp AS timestamp
    FROM {file_managed} base
    WHERE (base.fid IN (:db_condition_placeholder_0))
(prepared: SELECT base.fid AS fid, base."UID" AS "UID",
    base.filename AS filename, base.uri AS uri, base.filemime AS filemime,
    base.filesize AS filesize, base.status AS status, base.timestamp AS timestamp
    FROM "FILE_MANAGED" base
    WHERE (base.fid IN (:db_condition_placeholder_0))
)
e: SQLSTATE[HY000]: General error: 1722
OCIStmtExecute: ORA-01722: invalid number (ext\pdo_oci\oci_statement.c:146)
args: Array ( [:db_condition_placeholder_0] => )
in DrupalDefaultEntityController->load()
(line 196 of C:\xampp\htdocs\new\drupal\includes\entity.inc).

没有上下文,我们很难确定。但我有一种猜测的心情,所以这里说:

base.fid
是一个数字列。在
:db\u condition\u placeholder\u 0
中,您试图传递一组令牌,如
“23、42、69”

现在,您希望的是SQL引擎将把它们结合在一起生成一行,如下所示:

where base.fid in (23, 42, 69)
唉,它实际产生的是:

where base.fid in ('23, 42, 69')
。。。逻辑上与以下内容相同:

where base.fid = to_number('23, 42, 69')
显然,字符串不是有效的数字,因此是ORA-1722

现在你该怎么办是个棘手的问题。有几种不同的方法,包括嵌套表或数组、流水线函数和动态SQL。哪一个最适合你取决于你要求的细节


另外,当然,我还是在猜测你的问题:-)

没有上下文,我们很难确定。但我有一种猜测的心情,所以这里说:

base.fid
是一个数字列。在
:db\u condition\u placeholder\u 0
中,您试图传递一组令牌,如
“23、42、69”

现在,您希望的是SQL引擎将把它们结合在一起生成一行,如下所示:

where base.fid in (23, 42, 69)
唉,它实际产生的是:

where base.fid in ('23, 42, 69')
。。。逻辑上与以下内容相同:

where base.fid = to_number('23, 42, 69')
显然,字符串不是有效的数字,因此是ORA-1722

现在你该怎么办是个棘手的问题。有几种不同的方法,包括嵌套表或数组、流水线函数和动态SQL。哪一个最适合你取决于你要求的细节

另外,当然,我还是在猜测你的问题:-)