Bizarre Oracle SQL “Identifiant Invalide” erreur

Quelqu'un peut-il m'aider à comprendre pourquoi j'obtiens une erreur sur cms.CRIME_ID:

identifiant invalide

select c.criminal_id, c.first, c.last, cms.CRIME_ID, cc.crime_code, cc.fine_amount
from criminals c join crimes cms on c.criminal_id = cms.criminal_id
join crime_charges cc using (crime_id)
order by c.first, c.last;

Je sais pour un fait absolu que la colonne existe, et je peut faire référence à tous les autres de la colonne dans la table sauf que.

La seule chose de différent à propos de cette colonne, c'est que c'est la clé primaire de cette table.

EDIT: Voici l'erreur dans leur intégralité et de la création de la table de script.

Error starting at line 1 in command:
select c.criminal_id, c.first, c.last, cms.CRIME_ID, cc.crime_code, cc.fine_amount
from criminals c join crimes cms on c.criminal_id = cms.criminal_id
join crime_charges cc using (crime_id)
order by c.first, c.last
Error at Command Line:1 Column:39
Error report:
SQL Error: ORA-00904: "CMS"."CRIME_ID": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

 CREATE TABLE crimes
      (crime_id NUMBER(9),
       criminal_id NUMBER(6),
       classification CHAR(1),
       date_charged DATE,
       status CHAR(2),
       hearing_date DATE,
       appeal_cut_date DATE);

ALTER TABLE crimes
  MODIFY (classification DEFAULT 'U');
ALTER TABLE crimes
  ADD (date_recorded DATE DEFAULT SYSDATE);
ALTER TABLE crimes
  MODIFY (criminal_id NOT NULL);
ALTER TABLE crimes
  ADD CONSTRAINT crimes_id_pk PRIMARY KEY (crime_id);
ALTER TABLE crimes
  ADD CONSTRAINT crimes_class_ck CHECK (classification IN('F','M','O','U'));
ALTER TABLE crimes
  ADD CONSTRAINT crimes_status_ck CHECK (status IN('CL','CA','IA'));
ALTER TABLE crimes
  ADD CONSTRAINT crimes_criminalid_fk FOREIGN KEY (criminal_id)
             REFERENCES criminals(criminal_id);
ALTER TABLE crimes
  MODIFY (criminal_id NOT NULL);

EDIT2: et Aussi, je devrais probablement mentionner que lorsque vous n'utilisez pas de jointures et de simples instructions select, je peux accéder à la colonne parfaitement, comme dans l'exemple de code suivant:

select c.criminal_id, c.first, c.last, cms.crime_id, cc.crime_code, cc.fine_amount
from criminals c, crime_charges cc, crimes cms
where c.criminal_id = cms.criminal_id
and cms.crime_id = cc.crime_id
order by c.first, c.last;
  • Merci de poster les détails de la tables impliquées
  • Est-ce que votre utilisateur soit autorisé sur les crimes de la table?
  • Quelle est la définition de la crime_charges table?
  • F,M,O,U = Crime, Délit, D'Une Ordonnance (?), ???
  • Avez-vous essayé d'utiliser le nom complet (par exemple: crimes.crime_id au lieu de cms.crime_id)?
  • Pouvez vous s'il vous plaît faire un DESC crimes et de nous montrer la sortie?

InformationsquelleAutor JohnQPublic | 2011-09-14