Oracle
 sql >> Baza danych >  >> RDS >> Oracle

skrypt, który pobiera dane z pliku txt w klauzuli where

Brzmi jak Zewnętrzny katalog Oracle jest idealny do pracy. Należy pamiętać, że takie podejście jest obarczone trudnościami, jeśli jest to plik tekstowy, w którym użytkownicy mogą pisać. Użytkownicy zrobią setki rzeczy, w które nigdy nie wierzyłeś, że są możliwe, a które spowodują błędy i więcej .

Z artykułu:

Utwórz katalog

udzielaj odczytu, zapisuj w katalogu data_dir Twojemu_użytkownikowi;

Utwórz tabelę zewnętrzną

CREATE TABLE test_ext ( test_code VARCHAR2(5), test_name VARCHAR2(50) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_data ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL ( test_code CHAR(5), test_name CHAR(50) ) ) LOCATION ('test1.txt','test2.txt') ) PARALLEL 5 REJECT LIMIT UNLIMITED;

a następnie odczytaj ze stołu

SELECT *
    FROM   test_ext
    ORDER BY test_name;

Edycja:nadal można to zrobić z katalogami, które nie znajdują się na serwerze bazy danych, ale wymagana jest większa ilość pracy, a to stanowi jeszcze większe ryzyko dla bezpieczeństwa bazy danych i jakości danych. To podejście również nie podlega skalowaniu. Czy zamierzasz dodawać nowy katalog za każdym razem, gdy dodawany jest nowy użytkownik?

Kroki umożliwiające Oracle dostęp do plików znajdujących się na innym komputerze (zakładając system operacyjny Windows)

  • utwórz użytkownika Windows lub domeny, który będzie miał uprawnienia do odczytu plików w każdym katalogu, do którego chcesz uzyskać dostęp
  • na serwerze bazy danych uruchom services.msc i zmień użytkownika, na którym działa usługa bazy danych Oracle, na nowego użytkownika domeny. Dodaj tego użytkownika do lokalnej grupy o nazwie ORA_DBA na serwerze bazy danych
  • uruchom ponownie bazę danych, aby zmiany zaczęły obowiązywać
  • utwórz katalog w bazie danych, używając ścieżki takiej jak //clientPc/sharedFolder
  • nadaj uprawnienia do odczytu użytkownikowi bazy danych
  • na komputerze klienckim przyznaj odczyt użytkownikowi domeny w tym folderze
  • sprawdź łączność za pomocą UTLFILE odczytać przykładowy plik na komputerze klienckim



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-12154 nie może rozpoznać podanego identyfikatora połączenia

  2. Jak wyeksportować wyniki zapytania Oracle do pliku JSON przy użyciu SQLcl

  3. Funkcja Oracle To_Char V w ciągu formatu

  4. Jak zwrócić listę prawidłowych stref czasowych w bazie danych Oracle

  5. Używanie LogMiner do znajdowania bieżących zmian