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

скрипт, който изтегля данни от txt файл в клаузата where

Звучи като външна директория на Oracle идеален е за работа. Имайте предвид, че този подход е изпълнен с трудности, ако това е текстов файл, в който потребителите могат да пишат. Потребителите ще направят стотици неща, които никога не сте смятали за възможни, които ще причинят грешки и още .

От статията:

Създайте директория

предоставяне на четене, запис в директория data_dir на your_user;

Създайте външна таблица

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;

и след това прочетете от таблицата

SELECT *
    FROM   test_ext
    ORDER BY test_name;

Редактиране:все още можете да направите това с директории, които не се намират на сървъра на базата данни, но е необходима повече работа и това представлява още по-голям риск за сигурността на базата данни и качеството на данните. Този подход също не мащабира. Възнамерявате ли да добавяте нова директория при всяко добавяне на нов потребител?

Стъпки за разрешаване на достъп на Oracle до файлове, намиращи се на друга машина (приемайки операционна система Windows)

  • създайте потребител на Windows или домейн, който ще има разрешения за четене на файлове във всяка директория, до която искате да получите достъп
  • изпълнете services.msc на сървъра на базата данни и променете потребителя, на който работи услугата за база данни на Oracle, на вашия нов потребител на домейна. Добавете този потребител към локалната група, наречена ORA_DBA на сървъра на базата данни
  • рестартирайте базата данни, за да влязат в сила промените
  • създайте директория в базата данни, като използвате път като //clientPc/sharedFolder
  • дайте разрешения за четене на вашия потребител на базата данни
  • на клиентската машина предоставя четене на потребителя на домейна в тази папка
  • проверете свързаността с помощта на UTLFILE за четене на примерен файл на клиентския компютър



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка java.sql.SQLException:ORA-00911:невалиден знак

  2. Как да добавите специален знак в Oracle SQL, когато се намери точно съвпадение в колоната

  3. По-добър начин за структуриране на оператор PL/SQL IF THEN?

  4. Извличане на информация за тип данни за колони в Oracle OCCI ResultSet

  5. Хибернация:как да извикам съхранена функция, връщаща varchar?