[我正在尝试在ORACLE数据库中建立表,并且在尝试运行此命令时收到无效的数据类型错误:

问题描述 投票:-1回答:1
CREATE TABLE LIGNE DE COMMANDE (
  ligne_Commande_ID NUMBER (6) CONSTRAINT ligne_commande_id_pk PRIMARY KEY,
  Quantité NUMBER (3) CONSTRAINT ligne_comm_qtt NOT NULL,
  Article_ID NUMBER (6) CONSTRAINT ligneComm_article_fk REFERENCES article(article_id),
  Catégorie_ID NUMBER (6) CONSTRAINT ligneComm_catégorie_fk REFERENCES catégorie(catégorie_id),
  Commande_ID NUMBER (6) CONSTRAINT ligneComm_comm_fk REFERENCES commande(commande_id)) ;
sql oracle
1个回答
0
投票

使用NLS_CHARACTERSET = AL32UTF8时,只需将列名(QUANTITÉCATÉGORIE_ID)和表名(LIGNE DE COMMANDE)用双引号(")包装。

SQL> SELECT * FROM NLS_DATABASE_PARAMETERS
  2  WHERE PARAMETER = 'NLS_CHARACTERSET';

PARAMETER                                VALUE
---------------------------------------- ----------
NLS_CHARACTERSET                         AL32UTF8

SQL>

SQL> CREATE TABLE "LIGNE DE COMMANDE" (
  2      LIGNE_COMMANDE_ID   NUMBER(6)
  3          CONSTRAINT LIGNE_COMMANDE_ID_PK PRIMARY KEY,
  4      "QUANTITÉ"            NUMBER(3)
  5          CONSTRAINT LIGNE_COMM_QTT NOT NULL,
  6      ARTICLE_ID          NUMBER(6),
  7  --        CONSTRAINT LIGNECOMM_ARTICLE_FK
  8  --            REFERENCES ARTICLE ( ARTICLE_ID ),
  9      "CATÉGORIE_ID"        NUMBER(6),
 10  --        CONSTRAINT LIGNECOMM_CATÉGORIE_FK
 11  --            REFERENCES CATÉGORIE ( CATÉGORIE_ID ),
 12      COMMANDE_ID         NUMBER(6)
 13  --        CONSTRAINT LIGNECOMM_COMM_FK
 14  --            REFERENCES COMMANDE ( COMMANDE_ID )
 15  );

Table created.

干杯!

© www.soinside.com 2019 - 2024. All rights reserved.