web-dev-qa-db-fra.com

erreur "colonne non autorisée ici" dans l'instruction INSERT

J'ai créé cette table appelée LOCATION en faisant cela:

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, cela ne fonctionne pas si une erreur s’affiche.

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

l'erreur est en train de dire 

colonne non autorisée ici

20
john

Il vous manque des guillemets autour de la première valeur, cela devrait être

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

Incidemment, il serait judicieux de spécifier explicitement les noms des colonnes dans la commande INSERT, pour des raisons de lisibilité, de maintenabilité et de robustesse, c.-à-d.

INSERT INTO LOCATION (POSTCODE, STREET_NAME, CITY) VALUES ('PQ95VM', 'HAPPY_STREET', 'FRANCE');
41
skaffman

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

Colonne non autorisée ici

erreur. En raison de la citation peut manquer dans les paramètres de chaîne. Ajoutez une citation dans les paramètres de chaîne et essayez de l'exécuter.

Essaye ça:

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
Vijayaragavan

Comme dit Scaffman - Il vous manque des citations. Toujours lorsque vous transmettez une valeur à varchar2 use quotes

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

Ainsi, un ( ') démarre la chaîne et le second (' ) la ferme. 

Mais si vous souhaitez ajouter un symbole de citation dans une chaîne, par exemple: 

Mon père m'a dit: "tu dois être courageux, mon fils".

Vous devez utiliser un symbole de triple citation comme:

'Mon père m'a dit:' 'tu dois être courageux, mon fils' '.

* l'ajout d'une méthode de devis peut varier selon les moteurs de base de données

2
BlueConga

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

n'est pas correct car votre premier paramètre POSTCODE est de type VARCHAR(10). vous auriez dû utiliser' '

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

1
Hiruni K

Ce que vous avez manqué, c’est " " dans le code postal car c’est une varchar

Il y a deux façons d'insérer.

Lorsque vous avez créé une table Table created. et que vous avez ajouté une ligne juste après l'avoir créée, vous pouvez utiliser la méthode suivante. 

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

1 row created.

Vous avez ajouté autant de tables, ou il est enregistré et vous le rouvrez, vous devez également mentionner le nom de la colonne de la table, sinon le code d'erreur sera affiché. 

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
Shivangi Chaurasia
Scanner sc = new Scanner(System.in); 
String name = sc.nextLine();
String surname = sc.nextLine();
Statement statement = connection.createStatement();
String query = "INSERT INTO STUDENT VALUES("+'"name"'+","+'"surname"'+")";
statement.executeQuery();

Ne manquez pas d'ajouter '"----"' lorsque concat la chaîne. 

0
Avinash Khadsan

Cette erreur s'insinue si nous faisons une faute d'orthographe en entrant le nom de la variable . Comme dans la procédure stockée, j'ai le nom de la variable x et dans ma déclaration insert que j'utilise

insert into tablename values(y);

Cela jettera une colonne d'erreur non autorisée ici.

0
user2431326