Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Записать данные из файла JSON в таблицу PL / SQL / 4 сообщений из 4, страница 1 из 1
24.04.2020, 14:19
    #39951003
anonymous_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Записать данные из файла JSON в таблицу PL / SQL
Здравствуйте, я новичек! У меня есть файл "akim.json" в каталоге данных Oracle. В этом файл есть некие данные. Как я могу прочитать файл в моем коде PL / SQL с помощью команды UTL_FILE. Чтобы данные из этого файла вышли в виде таблицы? Я использую оракул 12.

Код: plsql
1.
create or replace directory tmp as'C:/oracle12/akim/app/oracle/product/12.2.0/sql_files';



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Create or Replace procedure json_ext as
    fHandle   UTL_FILE.FILE_TYPE;
    f varchar(200);
BEGIN
     fHandle := UTL_FILE.FOPEN('tmp', 'akim.json', 'r');
     Loop
         UTL_FILE.get_line(fHandle,f);
         dbms_output.put_line(f);
     end loop; 
     UTL_FILE.fclose(fHandle);
END;
...
Рейтинг: 0 / 0
24.04.2020, 14:33
    #39951011
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Записать данные из файла JSON в таблицу PL / SQL
anonymous_s
Чтобы данные из этого файла вышли
Похожая тема уже была Как записать и считать с файла . Спроси у автора, чем закончилось.
...
Рейтинг: 0 / 0
24.04.2020, 14:50
    #39951016
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Записать данные из файла JSON в таблицу PL / SQL
авторКак я могу прочитать файл в моем коде PL / SQL с помощью команды UTL_FILE
Чтение действительно осуществляется через get_line. А что ты потом делаешь с этой строкой - это чисто программистский вопрос. Имея в своем распоряжении INSTR + SUBSTR можно в коде распарсить любую строку
...
Рейтинг: 0 / 0
24.04.2020, 14:50
    #39951018
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Записать данные из файла JSON в таблицу PL / SQL
anonymous_s,

если знаете структуру документов, то для этого достаточно bfilename() и JSON_TABLE:
Код: bash
1.
2.
3.
4.
5.
6.
7.
# cat test.json
{
rows: [
       {a: 1,b: 2},
       {a: 2,b: 3},
       {a: 3,b: 4}
       ]
}
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SQL> select * from json_table(bfilename('FILES','test.json'), '$.rows[*]' columns a path '$.a', b path '$.b');

A          B
---------- ----------
1          2
2          3
3          4



или с помощью external table:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE TABLE json_dump_file_contents (json_document clob)
  ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY files
                         ACCESS PARAMETERS
                           (RECORDS DELIMITED BY 0x'00'
                            DISABLE_DIRECTORY_LINK_CHECK
                            FIELDS (json_document CHAR(500000)))
                         LOCATION (files:'test.json'))
  PARALLEL
  REJECT LIMIT UNLIMITED
/
select json_document from json_dump_file_contents;

JSON_DOCUMENT
---------------------------------------------------------
{
rows: [
       {a: 1,b: 2},
       {a: 2,b: 3},
       {a: 3,b: 4}
       ]
}
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Записать данные из файла JSON в таблицу PL / SQL / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]