Comment puis-je obtenir “ORA-00904: : identifiant invalide” à partir d'un paquet valide?

J'ai une procédure qui est valide et a un insert..instruction select. Maintenant, il est un cas où l'exécution de cette procédure produit "ORA-00904: : identificateur non valide" erreur à partir de cette déclaration. Comment est-ce la même théoriquement possible? Il n'y a pas de déclencheurs ou SQL dynamique.

Aussi, l'ORA-00904 texte dans sqlerrm est sans pointeur à un identifiant Oracle considère pas valide.

Oracle version 9.2.0.8

edit2:

S'avère qu'il y a un problème avec une fonction qui a été appelé depuis l'intérieur de la sélectionner (remplacé par de constantes et tout a fonctionné). Probablement que c'était la raison pour laquelle ORA-00904 ne pas donner un identifiant. Pourtant, la question demeure de savoir - faire peut-être que le code précompilé avec pas de sql dynamique donne cette erreur?

Pouvez-vous poster un exemple de code s'il vous plaît!
Existe-il des points de vue? À partir de ce que vous avez dit je suppose que vous avez un gestionnaire d'exception pour toutes les erreurs (when others) qui imprime SQLERRM; si vous n'avez pas que l'exception sera levée de toute façon et vous donneront plus d'informations sur d'où ça vient.
La fonction que vous avez identifié, et tout ce qui appelle à son tour, n'avait pas de SQL dynamique? Ne rien dans la chaîne ont un authid current_user clause, ce qui pourrait influer sur le comportement entre la compilation et de l'exécution (privilèges et de résolution)? Êtes-vous en s'appuyant sur le rôle accordé privs, qui ne s'appliquent pas dans les paquets?
"Maintenant, il est un cas où..." est-ce à dire qu'il ne produit pas toujours de cette erreur?
Il produit que l'erreur est seulement dans un cas particulier. Nous avons travaillé autour de cela (pas de changements de code, pas de modification de données) et nous n'avons pas vu ce problème plus.

OriginalL'auteur jva | 2011-01-18