"colonne non autorisée ici" erreur dans INSERT statement

j'ai créé cette table appelée LOCATION en faisant ceci:

CREATE TABLE LOCATION(
POSTCODE VARCHAR(10) PRIMARY KEY,
STREET_NAME VARCHAR(20),
CITY VARCHAR(20));

et quand j'essaie d'ajouter une date dans la table ça ne marche pas en disant qu'il y a une erreur

INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');

erreur est de dire

colonne non autorisée ici

18
demandé sur Jeffrey Kemp 2012-05-08 19:18:49

6 réponses

il Vous manque des guillemets autour de la valeur première, il devrait être

INSERT INTO LOCATION VALUES('PQ95VM', 'HAPPY_STREET', 'FRANCE');

soit dit en passant, il serait bien avisé de spécifier les noms de colonne explicitement dans L'insertion, pour des raisons de lisibilité, de maintenabilité et de Robustesse, i.e.

INSERT INTO LOCATION (POSTCODE, STREET_NAME, CITY) VALUES ('PQ95VM', 'HAPPY_STREET', 'FRANCE');
39
répondu skaffman 2012-05-08 15:21:46

peu de temps, lors de l'exécution de requête d'insertion, nous sommes confrontés:

colonne non autorisée ici

erreur. En raison de citation pourrait manquer dans les paramètres de chaîne de caractères. Ajouter de devis dans la chaîne de paramètres et essayez d'exécuter.

essaye ceci:

INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');

ou

INSERT INTO LOCATION (ID, FIRST_NAME, LAST_NAME) VALUES('PQ95VM','HAPPY_STREET','FRANCE');

http://www.drtuts.com/oracle-error-column-not-allowed-here/

3
répondu Vijayaragavan 2017-07-07 05:02:04

comme L'a dit Scaffman-vous manquez de citations. Toujours quand vous passez une valeur à varchar2 utilisez des guillemets

INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');

Donc un () commence la chaîne et la seconde () il se ferme.

Mais si vous voulez ajouter un symbole guillemet dans une chaîne de caractères, par exemple:

Mon père m'a dit: "il faut être courageux, fils".

Vous devez utiliser un triple symbole de devis comme:

* ajouter la méthode de citation peut varier sur différents moteurs db

2
répondu BlueConga 2016-05-18 20:24:25

Ce que vous avez manqué " " dans le code postal parce que c'est un varchar.

Il y a deux manières d'insérer.

quand vous avez créé une table Table created. et vous ajoutez une ligne, juste après la création, vous pouvez utiliser la méthode suivante.

INSERT INTO table_name
VALUES (value1,value2,value3,...);

1 row created.

vous avez ajouté tellement de tables, ou il est enregistré et vous le rouvrez, vous devez mentionner le nom de la colonne de la table trop ou il affichera la même erreur.

ERROR at line 2:
ORA-00984: column not allowed here


INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

1 row created.

1
répondu Shivangi Chaurasia 2016-07-28 03:09:22

INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');

n'est pas correct car votre premier paramètre POSTCODE est de type VARCHAR(10). vous devriez avoir utilisé ' '.

INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');

1
répondu Hiruni K 2018-07-26 08:54:55

cette erreur se propage si nous faisons une faute d'orthographe en entrant le nom de la variable. Comme dans proc stocké, j'ai le nom de la variable x et dans mon insert statement j'utilise

insert into tablename values(y);

il lancera une colonne d'erreur non autorisée ici.

0
répondu user2431326 2013-05-29 10:57:06