SQL загрузчик не загружает строки из-за символа новой строки - PullRequest
0 голосов
/ 30 сентября 2019

Я довольно новичок в загрузчике 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

...