Mon fichier brut comme ci-dessous

bbbb 1000 Open 1000 Dep  12/03/2010
dddd 1001 Open 2000 Loan 13/01/2019
eeee 1003 Dor  3000 Dep  11/04/1965

Fichier de contrôle SQLLDRR

load data
infile *
truncate into table Mytab
fields 
trailing nullcols
(
Name position (1:4),
Acc position(6:9),
Status Position(11:14),
Amt position(15:18),
type position(20:23),
Date position(24:33)
)

begin data

J'ai besoin de la colonne de la date avec un symbole de trait d'union (-) non pour slash (/) symbole.

12/03/2010 -- 12-03-2010

Date position(24:33) --- & gt; Ce que j'ai à mentionner ici

0
Bala S 24 mars 2021 à 07:46

1 réponse

Meilleure réponse

Cela aiderait si vous avez également fourni mytab description. Parce que, la colonne "Date" (dont le nom n'est pas valide; il est réservé au nom du type de données. Je l'ai renommé "Datum") devrait être de date DataType, s'il semble que vous utilisiez varchar2. Dans les deux cas, vous utiliseriez la fonction appropriée, enfermé dans des guillemets doubles. J'ai utilisé replace comme il fait ce que vous avez demandé.

Voici un exemple:

Le fichier de contrôle (le vôtre est invalide car il ne suive pas le format de données; je l'ai corrigé):

load data
infile *
truncate into table Mytab
fields
trailing nullcols
(Name    position(1:4),
 Acc     position(6:9),
 Status  position(11:14),
 Amt     position(16:19),
 type    position(21:24),
 Datum   position(26:35) "replace(:datum, '/', '-')"
)

begindata
bbbb 1000 Open 1000 Dep  12/03/2010
dddd 1001 Open 2000 Loan 13/01/2019
eeee 1003 Dor  3000 Dep  11/04/1965

Séance de chargement et résultat:

SQL> $sqlldr scott/tiger@xe control=test34.ctl log=test34.log

SQL*Loader: Release 11.2.0.1.0 - Production on Sri O×u 24 07:54:46 2021

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Commit point reached - logical record count 3

SQL> select * from mytab;

NAME       ACC        STATUS     AMT        TYPE       DATUM
---------- ---------- ---------- ---------- ---------- ----------
bbbb       1000       Open       1000       Dep        12-03-2010
dddd       1001       Open       2000       Loan       13-01-2019
eeee       1003       Dor        3000       Dep        11-04-1965

SQL>
2
Littlefoot 24 mars 2021 à 06:58