ora-06553 pls-306调用'ogc_x'时错误的参数数量或类型

lin*_*r85 6 sql oracle oracle10g

我在oracle 10g中尝试查询.它是这样的:

SELECT
  *
FROM
  h2h_reg reg,
  h2h_cat_estatus est
WHERE
  reg.FECH_APLICACION = SYSDATE
AND REG.ID_EST        = EST.ID_ESTATUS
AND est.tipo_estatus  = "X";
Run Code Online (Sandbox Code Playgroud)

所以它运行得很顺畅,但当我尝试添加一个组时:

SELECT
  reg.id_arch,
  reg.id_prod
FROM
  h2h_reg reg,
  h2h_cat_estatus est
WHERE
  reg.FECH_APLICACION = SYSDATE
AND reg.id_est        = est.id_estatus
AND EST.TIPO_ESTATUS  = "X"
GROUP BY
  reg.id_arch,
  reg.id_prod;
Run Code Online (Sandbox Code Playgroud)

我收到下一条消息:

ora-06553 pls-306调用'ogc_x'时错误的参数数量或类型

有谁知道我的查询有什么问题?

Daz*_*zaL 9

你用过双引号"X".

这应该是'X'.

X对象是MDSYS模式中的一个函数,"ogc_x",所以当你说est.tipo_estatus = "X"而不是正确的时候est.tipo_estatus = 'X'它会被翻译(因为""是一个标识符所以"X"就像输入X一样)est.tipo_estatus = mdsys.ogc_x当然失败.