ora-06553 pls-306 wrong number or types of arguments in call to 'ogc_x'

ぐ巨炮叔叔 提交于 2019-12-01 16:29:53

问题


I´m trying a query in oracle 10g. It goes like this:

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";

So it runs smootly, but when I try it adding a group by:

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;

I get the next message:

ora-06553 pls-306 wrong number or types of arguments in call to 'ogc_x'

Does anyone knows what´s wrong in my query?


回答1:


you've used double quotes on "X".

this should be 'X'.

the X object is an function in the MDSYS schema, "ogc_x", so when you say est.tipo_estatus = "X" instead of the correct est.tipo_estatus = 'X' it gets translated (as "" is as an identifier so "X" is the same as just typing X) to est.tipo_estatus = mdsys.ogc_x and of course fails.




回答2:


Try with DISTINCT :

SELECT DISTINCT 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'



回答3:


I found that this error was generated because I had used Oracle reserved words to name some of my columns, e.g. date, time, comment, etc. Once I renamed the columns the problem disappeared.



来源:https://stackoverflow.com/questions/13687766/ora-06553-pls-306-wrong-number-or-types-of-arguments-in-call-to-ogc-x

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!