Oracle записывает в файл - PullRequest
4 голосов
/ 26 августа 2008

Я запускаю oracle и у меня есть запрос, который извлекает некоторые результаты из базы данных Я хотел бы написать результаты в виде текстового файла. Как бы я поступил так?

Мой предпочтительный способ - использовать UTL_FILE. Будет ли у кого-нибудь пример, как это сделать?

Ответы [ 5 ]

4 голосов
/ 26 августа 2008

Если вы используете PL / SQL, вы можете использовать пакет UTL_FILE, отличие от использования sql + spool заключается в том, что файлы записываются в файловую систему сервера. UTL_FILE имеет ряд ограничений, поэтому альтернативой на стороне сервера будет использование хранимых процедур Java.

3 голосов
/ 26 августа 2008

Если вы используете Sql Plus, это так же просто, как:

SQL> spool c:\temp\out.txt
SQL> SELECT * FROM USERS;
SQL> spool off

Эти три предложения будут выводить результат запроса «SELECT * FROM USERS» в файл c: \ temp \ out.txt.

Вы можете отформатировать этот запрос, используя функции Oracle для работы со строками.

2 голосов
/ 02 сентября 2008

Используйте UTL_FILE в сочетании с CREATE DIRECTORY для простоты сопоставления пути к каталогу с именем (он не создает реальный каталог, а просто ссылку на него, поэтому убедитесь, что он создан первым)

пример


  create directory logfile as 'd:\logfile'; -- must have priv to do this

declare
  vFile utl_file.file_type;
begin
  vFile := utl_file.fopen(logfile ,'syslog','w'); -- w is write. This returns file handle
  utl_file.put(vFile,'Start Logfile'); -- note use of file handle vFile
  utl_file.fclose(vFile); -- note use of file handle vFile
end;

1 голос
/ 26 августа 2008

Если вы выполняете запрос из sqlplus , вы можете использовать команду spool:

spool /tmp/test.spool

После выполнения команды очереди в сеансе все выходные данные отправляются на консоль sqlplus, а также в текстовый файл /tmp/test.spool.

0 голосов
/ 26 августа 2008

Это разумный учебник с несколькими простыми примерами Пример UTL_FILE

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