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?
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.
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'
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With