Я довольно новичок в загрузчике sql и сталкиваюсь с некоторыми проблемами при загрузке данных, в которых есть несколько символов новой строки в последнем столбце. В приведенном ниже примере я экспортировал данные с разделителем строк как ~, поскольку у меня возникали проблемы с обычной новой строкой.
Мои данные выглядят так:
"FROM_UOM_CLASS"|"TO_UOM_CLASS"|"CONVERT_SQL"~"QTY"|"LVOL"|"select (column1 / column2)
from table
where column3 = :i"~"QTY"|"MASS"|"select (column1 / column2)
from table
where column3 = :i"~
Мой файл ctlвыглядит следующим образом:
OPTIONS(SKIP=1)
LOAD DATA
TRUNCATE
CONTINUEIF LAST != '~'
INTO TABLE XX_CONVERSION_STG
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
COLUMN1 CHAR "TRIM(:COLUMN1)"
,COLUMN2 CHAR "TRIM(:COLUMN2)"
,COLUMN3 CHAR "TRIM(:COLUMN3)"
,STATUS_CODE CONSTANT "N"
,STG_CREATE_ID "USER"
,STG_CREATE_DATETIME "SYSDATE"
,STG_UPDATE_ID "USER"
,STG_UPDATE_DATETIME "SYSDATE"
)
У меня есть возможность экспортировать данные так, как я хочу. Я пробовал без CONTINUEIF
, который также дает ту же ошибку. Я также попытался использовать
INFILE _CONVERSION_V14.dat "str X'7C400A'"
, который также не загружает данные. Без INFILE
или CONTINUEIF
я получил следующие 2 ошибки, поскольку новая строка берется как конец одной строки данных. Значение не является большим для столбца, если он подходит к правильному столбцу.
second enclosure string not present
ORA-12899: value too large for column
Пожалуйста, дайте мне знать, как решить эту проблему.
Спасибо, Anoop