ora-06553 pls-306 mauvais numéro ou les types d'arguments dans l'appel à "ogc_x'
Im essayant une requête dans oracle 10g. Il va comme ceci:
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";
De sorte qu'il s'exécute smootly, mais quand je l'ai essayer l'ajout d'un groupe par:
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;
Je reçois le message suivant:
ora-06553 pls-306 mauvais numéro ou les types d'arguments dans l'appel à "ogc_x'
Personne ne sait quoi de mal dans ma requête?
- Vous avez besoin
DISTINCT
puisque vous ne l'utilisez pas tout de granulats. - Comment est-ce que l'erreur que vous avez posté des références à une fonction (
ogc_x
) qui ne semble pas n'importe où dans votre requête? Êtes-vous sûr que la requête que vous avez posté, et l'erreur que vous avez posté aller ensemble? Est l'un des objets de laFROM
clause de vue qui fait référence à laogc_x
fonction? Aussi, les chaînes dans Oracle sont entourés de guillemets simples pas de guillemets doubles. Si vous avez utilisé= "X"
dans Oracle, qui permettrait de générer une erreur de syntaxe. Ce serait une autre erreur de syntaxe de celui que vous avez posté, si.
Vous devez vous connecter pour publier un commentaire.
vous avez utilisé des guillemets sur
"X"
.cela devrait être
'X'
.l'objet X est une fonction dans le MDSYS schéma, "ogc_x", quand vous dites
est.tipo_estatus = "X"
au lieu de le corrigerest.tipo_estatus = 'X'
il est traduit (en tant que "" est un identifiant si "X" est le même que de simplement taper X) pourest.tipo_estatus = mdsys.ogc_x
et bien sûr échoue.Essayer avec
DISTINCT
:J'ai trouvé que cette erreur s'est produite parce que j'avais utilisé Oracle mots réservés pour le nom de certains de mes colonnes, par exemple la date, l'heure, commentaire, etc. Une fois que j'ai renommé les colonnes, le problème a disparu.