PL / SQL? Чтобы прочитать файл CSV? Если можно, я бы предложил другой вариант - SQL* Loader . Он предлагает два варианта решения вашей проблемы; это
fields terminated by ','
optionally enclosed by '"'
Я создал тестовую таблицу, которая должна принимать данные, которые у вас есть в файле CSV:
SQL> desc dq;
Name Null? Type
----------------------- -------- ----------------
ID NUMBER
NAME_1 VARCHAR2(10)
NAME_2 VARCHAR2(10)
ADDR1 VARCHAR2(25)
ADDR2 VARCHAR2(25)
NUM1 NUMBER
NUM2 NUMBER
SQL>
Контрольный файл (как infile
, вы ' d используйте путь к вашему CSV-файлу, например, infile 'c:\temp\myfile.csv'
). Для простоты я включил пример данных в секцию begindata
.
load data
infile *
replace
into table dq
fields terminated by ','
optionally enclosed by '"'
trailing nullcols
(
id,
name_1,
name_2,
addr1,
addr2,
num1,
num2 decimal external "replace(:num2, '.', ',')"
)
begindata
12791750024,"ROSETTE","ROLLIN","6,RUE DE MALLEVILLE","95880ENGHIEN LES BAINS",35000,53.4400000000000000000000
Сессия загрузки:
c:\Temp>sqlldr scott/tiger control=test17.ctl log=test17.log
SQL*Loader: Release 11.2.0.2.0 - Production on Sri Tra 8 09:03:01 2020
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 1
c:\Temp>
Результат:
SQL> select * From dq;
ID NAME_1 NAME_2 ADDR1 ADDR2 NUM1 NUM2
------------ ---------- ---------- ------------------------- ------------------------- ---------- ----------
12791750024 ROSETTE ROLLIN 6,RUE DE MALLEVILLE 95880ENGHIEN LES BAINS 35000 53,44
SQL>
Вот, пожалуйста; все на своем месте.