Форум программистов, компьютерный форум, киберфорум
Наши страницы
Oracle
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
StalkerIQ
18 / 17 / 2
Регистрация: 21.05.2013
Сообщений: 345
#1

Чтение данных из внешнего файла - Oracle

27.02.2014, 06:56. Просмотров 3035. Ответов 10
Метки нет (Все метки)

Есть значит сторонняя программа (экспорт из этой программы формирование всех документов их много) формируется txt фаил в нём данные расположены блоками типа...

Начало файла
(информация о файле)
...
Начало документа
(информация о документе)
...
Конец документа

(Отступ)

(следующий файл)
...
Конец файла

Можно ли сделать так чтобы из этого самого файла ну скажем каждый день в 00 часов 00 минут делалась выборка и заносилась в БД (формировались таблицы, делался апдейт ячеек)? Я пока не спрашиваю как это сделать, но этот вопрос меня тоже интересует для начала хочу узнать возможно ли это вообще?
http://www.cyberforum.ru/oracle/thread502318.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 06:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Чтение данных из внешнего файла (Oracle):

Передача данных из внешнего select во внутренний
Всем, привет. У меня есть запрос select cdv.ncdvagrid, ( select * from...

Чтение из внешнего файла.
Надо составить матрицу размерностью NxN, и записать во внешний файл. Потом...

Чтение внешнего файла программой (.dat/.asm)
Вот есть код , он создает файл и открывает этот файл без проблем, но если файл...

Чтение из внешнего файла массива и сортировка его
Доброй ночи, уважаемые программисты........:cry: я больше не могу, я два дня...

Извлечение данных из внешнего файла
Добрый вечер. У меня есть файл с данными. Пример одной строки: 1 214 5152 ...

10
turbanoff
Эксперт Java
4008 / 3743 / 739
Регистрация: 18.05.2010
Сообщений: 9,323
Записей в блоге: 11
Завершенные тесты: 1
27.02.2014, 09:18 #2
Возможно.
0
StalkerIQ
18 / 17 / 2
Регистрация: 21.05.2013
Сообщений: 345
27.02.2014, 12:50  [ТС] #3
))))) Я хотел услышать ответ да выборка информации из внешнего файла возможна.
А не просто слово возможно )))

Добавлено через 2 минуты
Но хоть и на этом спасибо я сам недельку попробую потом результаты и с вопросом сюда обращусь.
0
Grossmeister
Модератор
3355 / 2413 / 402
Регистрация: 21.01.2011
Сообщений: 10,641
27.02.2014, 13:04 #4
Цитата Сообщение от StalkerIQ
Я хотел услышать ответ да выборка информации из внешнего файла возможна
Смотри пакет utl_file. Только учти, что файл д.б. на сервере
0
StalkerIQ
18 / 17 / 2
Регистрация: 21.05.2013
Сообщений: 345
28.02.2014, 10:16  [ТС] #5
Чего-то я не понял совсем куда чего как!?

Я значит нажимаю на белый листик выбираю там Командное окно или SQL окно Вставляю туда текст
Предварительно создав на диске С папку и файл внутри этой папки...

Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE DIRECTORY TESTLOC AS 'C:\TESTLOC';
DECLARE 
  fHandle  UTL_FILE.FILE_TYPE;
BEGIN
  fHandle := UTL_FILE.FOPEN('C:\TESTLOC', 'SYS.txt', 'w');
 
  UTL_FILE.PUT(fHandle, 'This is the first line');
  UTL_FILE.PUT(fHandle, 'This is the second line');
  UTL_FILE.PUT_LINE(fHandle, 'This is the third line');
 
  UTL_FILE.FCLOSE(fHandle);
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('Exception: SQLCODE=' || SQLCODE || '  SQLERRM=' || SQLERRM);
    RAISE;
END;
Я правильно понимаю что в файле должно появится три строчки с надписями...

This is the first line
This is the second line
This is the third line

Что я не так понял?

Добавлено через 36 секунд
Может я не туда код на выполнение вставляю?

Добавлено через 43 минуты
Нашел ещё

Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DECLARE
  c_location VARCHAR2(80) := 'TEST_DIR';
  c_filename CONSTANT VARCHAR2(80) := 'test.txt';
  v_handle UTL_FILE.File_Type;
BEGIN
  /* Открываем файл, перед этим делаем краткие пояснения:
   location - путь к файлу, начиная с Oracle 9.2.0 - это директория. В нашем примере указана именно директория.
   filename - имя файла.
   open_mode - файл открыт на запись.
   max_linesize - максимальная длина строки, которую необходимо делать не меньше,
                         чем длина строки, которую мы будем считывать/записывать.
                         Рекомендуемое значение 32767 */
  v_handle := UTL_FILE.Fopen (
    location => c_location,
    filename => c_filename,
    open_mode => 'w',
    max_linesize => 32767 );
  /* функция put позволяет дописывать данные в строку без перехода на новую */
   UTL_FILE.put(v_handle, 'любой текст');
  /* функция put_line записывает данные и добавляет символ перехода на новую строку */
  UTL_FILE.put_line(v_handle, 'любой текст'); 
  /* Закрываем файл */
  UTL_FILE.FClose(v_handle);
END;
не понимаю как?????
где ошибка???
1СОздал папку
2Создал text
3Открыл Оракле
4Куда код вставлять незнаю
5А то что сервер это не мой комп важно!?
Что я в базу захожу через сервер который стоит в другой комнате????
0
Grossmeister
Модератор
3355 / 2413 / 402
Регистрация: 21.01.2011
Сообщений: 10,641
28.02.2014, 10:33 #6
Цитата Сообщение от StalkerIQ Посмотреть сообщение
то что сервер это не мой комп важно!?
Весьма. Код исполняется на сервере. Сервер работает ТОЛЬКО с директориями, расположенными на сервере.
Работать с клиентскими директориями - дело клиентских приложений, а не сервера БД. Не царское это дело
0
StalkerIQ
18 / 17 / 2
Регистрация: 21.05.2013
Сообщений: 345
03.03.2014, 06:18  [ТС] #7
А какой тег то использовать? Я не нашел тега "оракле" как он обозначается ?
P.S. Это значит что я пару папок и файлов на сервера создал? +))))
0
Grossmeister
Модератор
3355 / 2413 / 402
Регистрация: 21.01.2011
Сообщений: 10,641
03.03.2014, 10:49 #8
Цитата Сообщение от StalkerIQ Посмотреть сообщение
Это значит что я пару папок и файлов на сервера создал?
CREATE DIRECTORY не создает реальный директорий в файловой системе. Он создает только объект Oracle для отслеживания прав доступа. Поэтому если ты в файловой системе сервера не создал директорий, то и файл не должен был создаться - должно вернуть ошибку.
0
StalkerIQ
18 / 17 / 2
Регистрация: 21.05.2013
Сообщений: 345
05.03.2014, 08:39  [ТС] #9
Да уж жуть какая уже очень долго ищу способ как это сделать... =(
Ещё раз опишу суть проблемы.
Есть сервер с оракле, есть подключённый к нему комп на компе есть файл в котором данные которые надо занести в БД как с этого компа это сделать?
Открыть файл считать данные в БД\записать другие данные в файл???
Есть ли вообще такой способ???
0
Grossmeister
Модератор
3355 / 2413 / 402
Регистрация: 21.01.2011
Сообщений: 10,641
05.03.2014, 09:54 #10
Еще раз.

utl_file предназначен для работы (чтения и записи) с файлами, которые находятся на сервере. Если ты не можешь закинуть файл на сервер (и не можешь попросить об этом админа), то это тебе не подходит.

Если у тебя файл регулярной структуры (например, в формате csv), то можно воспользоваться утилитой SQL*Loader, которая входит в состав клиента (вроде только в административную установку). Почитать про нее можно в томе доки Utilites.

Если и это условие не выполняется, то единственный способ - писать собственную программу на каком-нибудь языке (на том же Delphi) для загрузки такого файла.
0
StalkerIQ
18 / 17 / 2
Регистрация: 21.05.2013
Сообщений: 345
06.03.2014, 08:57  [ТС] #11
Да в общем-то не искал не нашел способ... Запилил как и предполагалось программу которая каждый день в одно и тоже время кидает файл на сервер врубает процедуру в оракле капец как неудобно всё из-за того что мне не дали на сервере с админскими настройками разобраться там просто надо прошарить комп для сервера как разрешенный и зарегистрировать его тогда оракле начинает видеть сетевые компы и диски на них я дома попробовал +))))))
0
06.03.2014, 08:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2014, 08:57
Привет! Вот еще темы с решениями:

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -> Vehicles -> Firetruck_0...

Импорт данных из внешнего источника, файла
Всем привет! Задумался тут на чем лучше, практичнее и работоспособнее...

Вставка данных из внешнего файла (формат CSV)
Здравствуйте. Не удаётся вставить данные в таблицу из внешнего файла (файл...

Чтение матриц с внешнего файла, умножение матриц...
Вот не могу составить программу... Необходимо считать матрицы А и В с внешнего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru