У меня есть следующий сценарий, который спулирует DDL всех таблиц, которые находятся в столбце table_name
таблицы MTTO_TAB_EXIST_ALL
при определенных условиях. Они хранятся в. SQL формате:
set pagesize 0
set long 90000
set linesize 10000
SET TERMOUT OFF
spool out.sql
select 'host mkdir ''C:\Users\personal\test'''||';'||chr(13)||chr(10)||
'host mkdir '||''''||'C:\Users\afpuchn\test\'||REPLACE(table_name, '$', '_')||''''||';'||chr(13)||chr(10)||
'spool C:\Users\personal\test\'||REPLACE(table_name, '$', '_')||'\'||REPLACE(table_name, '$', '_')||'.txt'||chr(13)||chr(10)||
'SELECT DBMS_METADATA.GET_DDL'||chr(13)||chr(10)||
'(''TABLE'','''||table_name||''') '||chr(13)||chr(10)||
'FROM DUAL;'||chr(13)||chr(10)|| --Extracting metadata
'spool off' as cmd
FROM MTTO_TAB_EXIST_ALL tea
WHERE UPPER(tea.OWNER_NAME) = UPPER('mto_tabl')
AND tea.MRK_DEL_PERM = 'Y';
spool off
@OUT.SQL
exit
Это один из DDL, который возвращает:
Input truncated to 7499 characters
CREATE TABLE "COGNOS_SA"."TRSF_A2000040_CUM_PROP_PERS_TW"
( "COD_COMPANIA" NUMBER(2,0),
"COD_RAMO" NUMBER(3,0),
"COD_RAMO_ASOCIADO" NUMBER(3,0),
"NUM_POLIZA" VARCHAR2(13),
"NUM_SPTO" NUMBER(5,0),
"NUM_APLI" NUMBER(5,0),
"NUM_SPTO_APLI" NUMBER(5,0),
"NUM_RIESGO" NUMBER(6,0),
"COD_COB" NUMBER(4,0),
"SUMA_ASEG" NUMBER,
"COD_PERIL_GROUP" NUMBER(3,0),
"COD_COVERAGE_GROUP" NUMBER(3,0),
"COD_RAMO_CONTABLE" VARCHAR2(9),
"COD_DEDUCIBLE" NUMBER,
"IMP_DEDUCIBLE" NUMBER,
"COASEGURO" VARCHAR2(4),
"FEC_CARGA" DATE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATOS_SA"
Input truncated to 7499 characters
4 rows updated.
Input truncated to 7499 characters
Commit complete.
Input truncated to 7499 characters
Я хотел бы знать, если во время импорта DDL, это сообщение приведет к ошибке при импорте. Если так, как я могу избавиться от этого?