J'ai essayé d'exécuter une SQL
INSERT
avec Toad for Oracle
:
INSERT INTO GRAT_ACTIVITY
(UUID, IP_ADRESS, SEND_MAIL, DATE_CREA, DATE_UPD, CREATOR, CENTER, ETAT, REQUEST)
VALUES('555-vgd9-pllkd-5513', '172.12.23.130', 'N', SYSDATE, SYSDATE, '1554', 'M18', 'I', 8842);
--COMMIT;
la structure de la table GRAT_ACTIVITY
est la suivante:
CREATE TABLE CASH.GRAT_ACTIVITY
(
UUID VARCHAR2(64 BYTE) NOT NULL,
IP_ADRESS VARCHAR2(15 BYTE),
SEND_MAIL VARCHAR2(1 BYTE),
DATE_CREA DATE,
DATE_UPD DATE,
CREATOR VARCHAR2(4 BYTE),
CENTER VARCHAR2(4 BYTE),
ETAT VARCHAR2(1 BYTE),
REQUEST NUMBER
)
le message d'erreur:
ORA-00911: caractère non valide
Cause: les identificateurs ne peuvent pas commencer par un caractère ASCII autre que des lettres et des chiffres. $ # _ sont également autorisés après le premier personnage. Les identifiants entre guillemets doubles peuvent contenir n’importe quel caractère autre qu'une double citation. Citations alternatives (q '# ... #') ne pouvez pas utiliser d'espaces, de tabulations ou de retours à la ligne comme séparateurs. Pour tous autres contextes, consultez le Manuel de référence du langage SQL.
Action: Aucune
Comment puis-je le résoudre?
La déclaration que vous exécutez est valide. L'erreur semble signifier que Toad inclut le point-virgule final dans la commande, ce qui provoque un ORA-00911
lorsqu'il est inclus dans une instruction - puisqu'il s'agit d'un séparateur d'instruction dans le client et non dans l'instruction elle-même.
La ligne commentée suivante peut être source de confusion pour Toad ( comme décrit ici ); ou peut-être parce que vous essayez de tout exécuter en une seule instruction, auquel cas vous pouvez utiliser la commande run script (F9) au lieu de l'instruction run (F5).
Le simple fait de supprimer la ligne commentée supprime le problème, mais si vous voyez également cela avec un commit réel, il est probable que vous utilisiez la mauvaise méthode pour exécuter les instructions.
Il y a un peu plus d'informations sur la façon dont Toad analyse les points-virgules dans un commentaire sur cette question connexe , mais je ne connais pas assez Toad pour entrer dans les détails.
J'ai eu le même problème et c'était dû à la fin de la ligne. J'avais copié un autre document ... J'ai mis tout sur la même ligne, puis je les ai divisés à nouveau et cela a fonctionné.
J'ai rencontré la même chose récemment. c'était simplement dû aux espaces lors de la copie d'un script d'un document vers un développeur SQL. J'ai dû supprimer les espaces et le script a été exécuté.
Supprimer le point-virgule (;), le backtick (``) etc. de l'intérieur d'une requête
J'utilise un programme tiers qui exécute Oracle SQL et j'ai rencontré cette erreur. Avant une déclaration SELECT
, j'avais des notes commentées contenant des caractères spéciaux. Supprimer les commentaires a résolu le problème.
Si un nom spécial autre que $, _ et # est utilisé dans le nom d'une colonne ou d'un tableau, le nom doit être placé entre guillemets . Lien