sql >> Databáze >  >> RDS >> Oracle

Importujte soubor CSV do tabulky Oracle pomocí uložené procedury

Soubor CSV je soubor oddělený čárkami, ve kterém jsou pole oddělena čárkou. V tomto článku uvádím příklad importu souboru CSV do tabulky oracle pomocí uložené procedury. Uložená procedura v Oracle je programová jednotka PL/SQL, která může být samostatná nebo v databázovém balíčku.

V databázi Oracle musíte mít objekt adresáře odkazující na cestu k serveru, na kterém je soubor uložen. V níže uvedeném příkladu používám název objektu adresáře jako CSV_DIR a název procedury je read_csv. Také byla vytvořena funkce GetString v proceduře read_csv pro získání odděleného řetězce jeden po druhém .

Načtení souboru CSV do tabulky Oracle pomocí procedury PL/SQL

POSTUP VYTVOŘENÍ NEBO NAHRAZENÍ read_csvISl_file_type UTL_FILE.file_type;l_string VARCHAR2 (32765);TYPE Hodnota pole JE TABLE OF VARCHAR2 (4000)INDEX PODLE BINARY_INTEGER; t_pole hodnota_INTEGER_INTERBO; ,Delimiter IN VARCHAR2 DEFAULT ',')RETURN VARCHAR2ISiPtrEnd PLS_INTEGER :=0;iPtrStart PLS_INTEGER :=0;vcSourceStrCopy VARCHAR2 (4000) :=Source_string;=BEGINcSourStrceCopyCopy |c| Delimiter;END IF;IF Field_Position> 1THENiPtrStart :=INSTR (vcSourceStrCopy,Delimiter,1,Field_Position - 1)+ LENGTH (Delimiter);ELSEiPtrStart :=1;END IF;iPtrEnd :=INSTR_Copy,Delimiter;RETURN SUBSTR (vcSourceStrCopy, iPtrStart, (iPtrEnd - iPtrStart));END GetString;BEGINl_file_type :=UTL_FILE.Fopen ('CSV_DIR', 'abc.csv', 'r');LOOPUTL_FILE.l_filing_string :=l_string || ',';FOR n IN 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)VALUES (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);ENDpre>IF;END;
 Vezměte prosím na vědomí, že musíte prostudovat svůj soubor CSV, abyste správně namapovali cílovou tabulku. Zpracujte také formát data pro datová pole podle formátu dat CSV.

  1. Klíčové slovo není podporováno:Metadata

  2. Potřebujete sloupec datetime na serveru SQL Server, který se automaticky aktualizuje při změně záznamu

  3. Příklady JSON_VALUE() v SQL Server (T-SQL)

  4. Heroku psql:FATAL:zbývající připojovací sloty jsou vyhrazeny pro nereplikační připojení superuživatele