Comment insérer la valeur NULL dans le champ date Oracle SQL Developer
CREATE TABLE pledge
(
pledge_ID NUMBER NOT NULL ,
pledge_endDate DATE NULL ,
pledge_startDate DATE NULL ,
pledge_amount DECIMAL(9,2) NULL CONSTRAINT Currency_1322638346 CHECK (pledge_amount >= 0),
artist_userID NUMBER NOT NULL,
follower_userID NUMBER NOT NULL,
CONSTRAINT XPKPledge PRIMARY KEY (pledge_ID),
CONSTRAINT gets FOREIGN KEY (artist_userID) REFERENCES ArtistMember (user_ID),
CONSTRAINT makes FOREIGN KEY (follower_userID) REFERENCES FollowerMember (user_ID)
);
Lorsque j'essaie d'insérer une valeur null je reçois le message d'erreur ci-dessous.
INSERT INTO pledge VALUES(559, 'null','1-FEB-2016', 3850, 85275, 88128);
Error report -
SQL Error: ORA-00904: : invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error starting at line : 209 in command -
INSERT INTO pledge VALUES(559, 'NULL','1-FEB-2016', 3850, 85275, 88128)
Error at Command Line : 209 Column : 13
Error report -
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
Regardez les erreurs à nouveau. Le
insert
est arriver ORA-00942. L'ORA-00904 est à venir à partir de la create table
. Fixer que le premier. Lorsque vous souhaitez insérer la valeur null, il doit être juste null
, pas 'null'
- qui est un littéral de chaîne, pas la valeur null. Et ne comptez pas sur la date implicite conversions, comme vous êtes avec la date de début.OriginalL'auteur meeshi | 2016-03-18
Vous devez vous connecter pour publier un commentaire.
La
SQL Error: ORA-00904: : invalid identifier
est probablement causé, parce que votreFOREIGN KEY
s sont la référence à une colonne qui n'existe pas - vérifiez que les noms de colonne sont orthographiés correctement et qui doit le résoudre (et puis votreCREATE TABLE
déclaration de travaux).Si vous venez d'utiliser la chaîne de caractères dans
'1-FEB-2016'
puis Oracle implicitement essayer de convertir la chaîne de caractères littérale à l'aide de laTO_DATE()
fonction avec laNLS_DATE_FORMAT
session paramètre comme le masque de format. Si elles correspondent alors que cela fonctionne, mais c'est un client de variable peut donc être modifié et à la requête de pause sans le code a changé (et être une douleur à déboguer). La réponse la plus simple est de s'assurer que vous comparez la valeur de date en utilisantTO_DATE()
et en spécifiant le format de masque (conformément à la requête ci-dessus) ou à l'utilisation ANSI date littéraleDATE '2016-02-01'
(qui est indépendant de la NLS paramètres).OriginalL'auteur MT0
Insérer une chaîne vide
''
à un certain NOMBRE de colonne, Oracle insérerNULL
.Par exemple,
col_2
a un type de données de champ de date ounumber(12,0)
(n'importe quel type de données de ce pas le champ de date), l'instruction SQL définieNULL
valeur pourcol_2
comme ceci:ou
(c'est
NULL
, pas'NULL'
ou"NULL"
)OriginalL'auteur Do Nhu Vy