Oracle
 sql >> база данни >  >> RDS >> Oracle

Импортирайте CSV файл в таблицата на Oracle с помощта на съхранена процедура

CSV файлът е файл, разделен със запетая, в който полетата са разделени със запетая. В тази статия давам пример за импортиране на CSV файл в таблицата на Oracle с помощта на съхранена процедура. Съхранената процедура в Oracle е програмна единица PL/SQL, която може да бъде самостоятелна или в пакет с база данни.

Трябва да имате обект на директория в базата данни на Oracle, отнасящ се до пътя на сървъра, в който се съхранява файлът. В примера по-долу използвам името на обекта на директория като CSV_DIR и името на процедурата е read_csv. Също така създаде функция GetString в процедурата read_csv, за да получите разделения низ един по един .

Зареждане на CSV файл в Oracle Table чрез PL/SQL процедура

СЪЗДАДЕТЕ ИЛИ ЗАМЕНЕТЕ ПРОЦЕДУРА read_csvISl_file_type UTL_FILE.file_type;l_string VARCHAR2 (32765);TYPE Fieldvalue IS TABLE OF VARCHAR2 (4000)INDEX BY BINARY_INTEGER;t_field Fields INTERNATIONAL, t_field Fielduer MIN. ,Разграничител В VARCHAR2 DEFAULT ',')RETURN VARCHAR2ISiPtrEnd PLS_INTEGER :=0;iPtrStart PLS_INTEGER :=0;vcSourceStrCopy VARCHAR2 (4000) :=Source_string;BEGINIF UnTerminated | Delimiter; край, ако; if field_position> 1theniptrstart:=instr (vcsourcestrcopy, разделител, 1, field_position - 1)+ дължина (разделител); elseiptrstart:=1; край, ако; iptrend:=instr (vcsourcestrcopy, delimiter, 1, field_position));RETURN SUBSTR (vcSourceStrCopy, iPtrStart, (iPtrEnd - iPtrStart));END GetString;BEGINl_file_type :=UTL_FILE.Fopen ('CSV_DIR', 'abc.csv', 'r');LOOPUTL_FILE.Getllie_string (Getl_file_string); :=l_низ || ',';ЗА n В 1 .. REGEXP_COUNT (l_string, ',')LOOPt_field (n) :=Getstring (l_string,n,FALSE,',');END LOOP;INSERT INTO EMP (EMPNO,ENAME,JOB, MGR,HIREDATE,SAL,COMM,DEPTNO)STOS (t_field (1),t_field (2),t_field (3),t_field (4),TO_DATE (t_field (5), 'dd/mm/yyyy'),t_field ( 6),t_field (7),t_field (8));END LOOP;UTL_FILE.Fclose (l_file_type);COMMIT;EXCEPTIONWHEN OTHERSTHENIF UTL_FILE.is_open (l_file_type)THENUTL_FILE.Fclose (l_file_type);END IF;END; 

Моля, имайте предвид, че трябва да проучите своя CSV файл, за да картографирате целевата таблица правилно. Също така обработвайте формата на датата за полетата за дата, според вашия формат на данните за дата в CSV.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cx_Oracle и обработка на изключения – добри практики?

  2. Наистина ли са необходими външни ключове в дизайна на база данни?

  3. Ако изявление в рамките на клауза Къде

  4. Режим на престой и прилагане на Hotpatch в adop R12.2

  5. Как да експортирате резултатите от заявката в CSV файл в SQLcl (Oracle)