Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да замените стойностите на sqlldr

Ще помогне, ако предоставите и mytab описание. Тъй като колоната „Дата“ (чието име е невалидно; запазено е за име на тип данни. Преименувах я на „Дата“) трябва да е с date тип данни, докато изглежда, че използвате varchar2 . И в двата случая ще използвате подходяща функция, оградена в двойни кавички. Използвах replace тъй като прави това, което поискахте.

Ето един пример:

Контролен файл (вашият е невалиден, тъй като не следва формат на данните; поправих го):

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

Зареждане на сесия и резултат:

SQL> $sqlldr scott/[email protected] 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>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция POWER() в Oracle

  2. Свързване на IRI софтуер към Oracle

  3. Как да получите име на клас драйвер (не име на драйвер) от jdbc връзка

  4. ORA-06508:PL/SQL:не можа да намери извикан програмен модул

  5. Как да премахнете невалидна връзка с база данни от пула