Я пытаюсь показать данные из файла "CSV" в формы Oracle.Я использую процедуру Client_Text_IO для чтения данных из файла "CSV" с запятой, разделенной на блок данных.
У меня есть один столбец, в котором некоторые данные пустые, и некоторые данные.Если я открою файл в Excel, тогда:
Нет.6 столбцов, некоторые строки пусты:
№ 6 столбец, в некоторых строках есть данные:
Когда я открываю файл в блокноте, то:
6,6,6000000116,HH00000471,Abdul akbar,,1610223056753
Вы можете увидеть после "ABDUL AKBAR" есть2 запятых из-за пустых данных
С данными в блокноте:
6,6,6000000189,HH00000544,Raishma bibi,Gul akbar,1610216789294
Когда я запускаю процедуру, я получаю следующую ошибку в 6-м столбце:
КОД:
PROCEDURE p_output_line(p_line varchar2) IS
vLINE VARCHAR2(4000);
vVALUE VARCHAR2(1000);
vCOMMA_COUNT NUMBER;
BEGIN
vLINE := p_line;
vCOMMA_COUNT := LENGTH(vLINE)- LENGTH(REPLACE(vLINE,',',''));
FOR I IN 1.. vCOMMA_COUNT+1 LOOP
vVALUE := SUBSTR(vLINE,1,INSTR(vLINE,',')-1);
IF vVALUE IS NULL THEN
vVALUE := vLINE;
END IF;
vLINE := SUBSTR(vLINE,INSTR(vLINE,',')+1) ; -- CHANGE 123,ABC,9877 TO BE ABC,9877
IF I = 1 THEN
:WE_GROUP_HOF_K.CLIENTID := vVALUE;
END IF;
IF I = 2 THEN
:WE_GROUP_HOF_K.PROJECTID := vVALUE;
END IF;
IF I = 3 THEN
:WE_GROUP_HOF_K.GROUP_HOF_ID := vVALUE;
END IF;
IF I = 4 THEN
:WE_GROUP_HOF_K.NRSP_HOFID := vVALUE;
END IF;
IF I = 5 THEN
:WE_GROUP_HOF_K.HOF_NAME := vVALUE;
END IF;
IF I = 6 THEN
:WE_GROUP_HOF_K.FATHER_NAME := vVALUE;
END IF;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
MESSAGE('Please Check the data type is appropriate on you excel file');
MESSAGE('Please Check the data type is appropriate on you excel file');
END;