Форум программистов, компьютерный форум, киберфорум
Наши страницы

Oracle

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
StalkerIQ
17 / 16 / 1
Регистрация: 21.05.2013
Сообщений: 334
#1

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

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

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

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

(Отступ)

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

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

Чтение данных из текстового файла - Oracle
Требуется записать в переменную одну строку из внешнего текстового файла, файл лежит в корне. Помогите, плиз, напишите точный код для...

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

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

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

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

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

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

Добавлено через 2 минуты
Но хоть и на этом спасибо я сам недельку попробую потом результаты и с вопросом сюда обращусь.
0
Grossmeister
Модератор
3195 / 2291 / 358
Регистрация: 21.01.2011
Сообщений: 10,228
27.02.2014, 13:04 #4
Цитата Сообщение от StalkerIQ
Я хотел услышать ответ да выборка информации из внешнего файла возможна
Смотри пакет utl_file. Только учти, что файл д.б. на сервере
0
StalkerIQ
17 / 16 / 1
Регистрация: 21.05.2013
Сообщений: 334
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
Модератор
3195 / 2291 / 358
Регистрация: 21.01.2011
Сообщений: 10,228
28.02.2014, 10:33 #6
Цитата Сообщение от StalkerIQ Посмотреть сообщение
то что сервер это не мой комп важно!?
Весьма. Код исполняется на сервере. Сервер работает ТОЛЬКО с директориями, расположенными на сервере.
Работать с клиентскими директориями - дело клиентских приложений, а не сервера БД. Не царское это дело
0
StalkerIQ
17 / 16 / 1
Регистрация: 21.05.2013
Сообщений: 334
03.03.2014, 06:18  [ТС] #7
А какой тег то использовать? Я не нашел тега "оракле" как он обозначается ?
P.S. Это значит что я пару папок и файлов на сервера создал? +))))
0
Grossmeister
Модератор
3195 / 2291 / 358
Регистрация: 21.01.2011
Сообщений: 10,228
03.03.2014, 10:49 #8
Цитата Сообщение от StalkerIQ Посмотреть сообщение
Это значит что я пару папок и файлов на сервера создал?
CREATE DIRECTORY не создает реальный директорий в файловой системе. Он создает только объект Oracle для отслеживания прав доступа. Поэтому если ты в файловой системе сервера не создал директорий, то и файл не должен был создаться - должно вернуть ошибку.
0
StalkerIQ
17 / 16 / 1
Регистрация: 21.05.2013
Сообщений: 334
05.03.2014, 08:39  [ТС] #9
Да уж жуть какая уже очень долго ищу способ как это сделать... =(
Ещё раз опишу суть проблемы.
Есть сервер с оракле, есть подключённый к нему комп на компе есть файл в котором данные которые надо занести в БД как с этого компа это сделать?
Открыть файл считать данные в БД\записать другие данные в файл???
Есть ли вообще такой способ???
0
Grossmeister
Модератор
3195 / 2291 / 358
Регистрация: 21.01.2011
Сообщений: 10,228
05.03.2014, 09:54 #10
Еще раз.

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

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

Если и это условие не выполняется, то единственный способ - писать собственную программу на каком-нибудь языке (на том же Delphi) для загрузки такого файла.
0
StalkerIQ
17 / 16 / 1
Регистрация: 21.05.2013
Сообщений: 334
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 - PHP
Допустим у нас есть структура с папками типа Large -> Vehicles -> Firetruck_0 В этой папке лежит файл формата .dat Что нужно сделать? ...

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

Чтение матриц с внешнего файла, умножение матриц... - Pascal
Вот не могу составить программу... Необходимо считать матрицы А и В с внешнего файла (input). Матрица А размерностью 5х7, В размерностью...

Передача данных из программы во внешний файл и из внешнего файла в программу - Delphi
Например, нужно записать во внешний файл несколько чисел, а потом считать эти числа из внешнего файла сформировать из них массив и вывести...


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

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

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