我想从不同的文件夹导入许多不同的文件。每个文件夹都有一个数字。有一个文件夹结构,如:
E:\数据\ drivers_v1 \驱动\ 1
文件夹结构有一个特定的问题:缺少一些文件夹。例如,de文件夹4到9。
在每个文件夹中都有200个文件。每个文件都有一个像1.csv,2.csv等的数字。我想在一个表中导入这些文件。导入后,a具有与文件夹相同数量的表。
我尝试了几个pl / sql代码。最后一个选项是:
DECLARE
TELLER_1 INTEGER := 1;
TELLER_DR INTEGER :=10;
AANTAL_SEC INTEGER;
ctt0 varchar(30000);
ctt1 varchar(30000);
ctt2 varchar(30000);
ctt3 varchar(30000);
BEGIN
FOR TELLER_DR IN 10..12 LOOP
execute immediate 'create directory dat_dir as ''E:\data\drivers_v1\drivers\'||TELLER_DR||'''';
execute immediate 'create directory log_dir as ''E:\data\drivers_v1\drivers\'||TELLER_DR||'''';
execute immediate 'create directory bad_dir as ''E:\data\drivers_v1\drivers\'||TELLER_DR||'''';
ctt0 := '
CREATE TABLE DRIVER_'||TELLER_DR||'_DEF
(
DRIVER_CHAR VARCHAR2(255),
DRIVER_INT INTEGER,
RIT INTEGER,
SEC INTEGER,
X NUMBER,
Y NUMBER
)
'
;
execute immediate ctt0;
FOR teller_1 IN 1 .. 200 LOOP
ctt1 := '
CREATE TABLE driver_rit_'||TELLER_1||'
(
x VARCHAR2 (255),
y VARCHAR2 (255)
)
organization external
(
type oracle_loader
default directory dat_dir
access parameters
( records delimited by 0x''0A''
BADFILE bad_dir:''driver_rit_'||TELLER_1||'_BAD.TXT''
DISCARDFILE dat_dir:''driver_rit_'||TELLER_1||'_DCF.TXT''
LOGFILE dat_dir:''driver_rit_'||TELLER_1||'_LOG.TXT''
SKIP 1
fields terminated by '',''
MISSING FIELD VALUES ARE NULL
)
LOCATION ('''||TELLER_1||'.csv'')
) reject limit 2000
'
;
execute immediate ctt1;
ctt2 := '
insert into DRIVER_'||TELLER_DR||'_DEF
(select
''DRIVER_'||TELLER_DR||''',
'||TELLER_DR||',
'||TELLER_1||',
ROWNUM,
X ,
Y
from driver_rit_'||TELLER_1||'
)
'
;
execute immediate ctt2;
ctt3 := 'drop table driver_rit_'||TELLER_1||'';
execute immediate ctt3;
END LOOP;
END LOOP;
END;
此代码不起作用。 ORA-00955:名称已被现有对象使用 ORA-06512:第16行 00955. 00000 - “名称已被现有对象使用”
谁有建议使用sql或pl / sql脚本?