Прочитать файл Excel в базе данных Oracle - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу знать способ, процедуру или запрос, которые могут помочь мне прочитать файл Excel. Я просто хочу разместить файл Excel где-нибудь на моем сервере БД и использовать запрос для отображения всех записей этого файла Excel в выводе запроса. Файл может иметь любую длину, любое количество строк и столбцов.

Я использовал as_read_xlsx, но он предоставляет данные в столбцах, а также отдельные строки, числа и даты. Я хочу, чтобы все данные отображались в формате Excel.

1 Ответ

2 голосов
/ 08 ноября 2019

Я просто хочу разместить файл Excel где-нибудь на моем сервере БД и использовать запрос для отображения всех записей этого файла Excel в выводе запроса. Файл может иметь любую длину, любое количество строк и столбцов.

Как уже упоминалось в моих комментариях, для этого вам потребуется создать таблицу External. См. Ниже:

Содержимое файла My CSV (Tst.csv):

enter image description here

Создан каталог CSV_FILES и выполнен входкак SYS и предоставлено разрешение на чтение и запись.

GRANT READ,WRITE ON DIRECTORY CSV_FILES TO scott;

Directory

Создана External таблица, как показано ниже:

CREATE TABLE TST_TABLE
(
  ACCT_NO                   VARCHAR2(7),
  LOAN_AMOUNT               NUMBER,
  PRODUCT_TYPE              VARCHAR2(3) 
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY CSV_FILES
     ACCESS PARAMETERS 
       ( RECORDS DELIMITED  BY NEWLINE
         skip 1
         LOGFILE CSV_FILES:'tstlog.log'
         BADFILE CSV_FILES:'tstbad.bad'
         FIELDS TERMINATED BY  ","            
           (
              ACCT_NO            ,
              LOAN_AMOUNT        ,
              PRODUCT_TYPE       
            )
          )
     LOCATION ('Tst.csv'))
     reject limit unlimited;

Запрос к таблице всех записей как:

SQL> select * from TST_TABLE;

ACCT_NO LOAN_AMOUNT PRO
------- ----------- ---
AFSGSGT       34454 XXX
BSDFFGS       45645 YYY
SFSDFDS       56453 ZZZ

Запрос на выборку выборочных записей с использованием условия фильтра:

SQL> select * from TST_TABLE where product_type = 'XXX';

ACCT_NO LOAN_AMOUNT PRO
------- ----------- ---
AFSGSGT       34454 XXX
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...