Bonjour à tous,

Après de longue recherche sur le net et ce forum, je me résoud à poster ici.

Je souhaite importer un fichier txt dans la table DEMO_CUSTOMER qui contient déjà des données. Voici le SQL de cette table:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
CREATE TABLE  "DEMO_CUSTOMERS" 
   (	"CUSTOMER_ID" NUMBER NOT NULL ENABLE, 
	"CUST_FIRST_NAME" VARCHAR2(20) NOT NULL ENABLE, 
	"CUST_LAST_NAME" VARCHAR2(20) NOT NULL ENABLE, 
	"CUST_STREET_ADDRESS1" VARCHAR2(60), 
	"CUST_STREET_ADDRESS2" VARCHAR2(60), 
	"CUST_CITY" VARCHAR2(30), 
	"CUST_STATE" VARCHAR2(2), 
	"CUST_POSTAL_CODE" VARCHAR2(10), 
	"PHONE_NUMBER1" VARCHAR2(25), 
	"PHONE_NUMBER2" VARCHAR2(25), 
	"CREDIT_LIMIT" NUMBER(9,2), 
	"CUST_EMAIL" VARCHAR2(30), 
	 CONSTRAINT "DEMO_CUST_CREDIT_LIMIT_MAX" CHECK (credit_limit <= 5000) DISABLE, 
	 CONSTRAINT "DEMO_CUSTOMERS_PK" PRIMARY KEY ("CUSTOMER_ID") ENABLE
   )
/
 
 
CREATE INDEX  "DEMO_CUST_NAME_IX" ON  "DEMO_CUSTOMERS" ("CUST_LAST_NAME", "CUST_FIRST_NAME")
/
 
 
CREATE OR REPLACE TRIGGER  "INSERT_DEMO_CUST" 
BEFORE INSERT ON demo_customers
FOR EACH ROW
DECLARE
  cust_id number;
BEGIN
  SELECT demo_cust_seq.nextval
    INTO cust_id
    FROM dual;
  :new.CUSTOMER_ID := cust_id;
END;
/
ALTER TRIGGER  "INSERT_DEMO_CUST" DISABLE
J'essaye ensuite d'importer mon fichier à l'aide du fichier de controle qui suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
LOAD DATA
INFILE 'c:\IF\NAW\IN\naw_o2ap.cur'
APPEND
INTO TABLE DEMO_CUSTOMERS
TRAILING NULLCOLS
(
   CUSTOMER_ID           "demo_cust_seq.nextval",
   CUST_FIRST_NAME       POSITION(1:10),
   CUST_LAST_NAME        POSITION(11:20),
   CUST_STREET_ADDRESS1  POSITION(21:25),
   CUST_STREET_ADDRESS2  POSITION(26:30),
   CUST_EMAIL            POSITION(31:40)
 )
Et en résultat, j'obtiens ce message d'erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
   Nom de colonne               Position   Long.  Séparat. Encadrem. Type de données
------------------------------ ---------- ----- ---- ---- ---------------------
CUSTOMER_ID                         FIRST     1           CHARACTER            
    chaîne SQL pour la colonne : "demo_cust_seq.nextval"
CUST_FIRST_NAME                      1:10    10           CHARACTER            
CUST_LAST_NAME                      11:20    10           CHARACTER            
CUST_STREET_ADDRESS1                21:25     5           CHARACTER            
CUST_STREET_ADDRESS2                26:30     5           CHARACTER            
CUST_EMAIL                          31:40    10           CHARACTER            
 
Enregistrement 1 : Rejeté - Erreur sur table DEMO_CUSTOMERS.
ORA-00604: une erreur s'est produite au niveau SQL récursif 1
ORA-01400: impossible d'insérer NULL dans ("HR"."DEMO_CUSTOMERS"."CUSTOMER_ID")
Je ne comprends pas pourquoi le n° de séquence reste null? Si qqn à une idée!

Merci d'avance!

AkA