Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как сохранить результат запроса в файл? / 24 сообщений из 24, страница 1 из 1
08.02.2006, 14:24
    #33531485
Deniska2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Ест необходимость, чтобы результаты выборки из базы сохранялись в файл. Как это делается руками понятно, но хотелось бы чтобы это делала хранимая процедура. В доках нашел что есть команда
save название_файла
Которая должна делать файл. Есть еще append - типа функции к ней. вот только не пойму, как сделать, чтобы создавался файл и в него результат запроса помещался?? Никто не сталкивался с этим?
...
Рейтинг: 0 / 0
08.02.2006, 14:58
    #33531617
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
В самом общем случае в хранимой процедуре открывается курсор, а затем с пом. UTL_FILE... В общем, из вопроса непонятно, из какой среды это надо делать. Во всяком случае SAVE здесь нипричем (если имеется ввиду SQL*PLUS)
...
Рейтинг: 0 / 0
08.02.2006, 15:22
    #33531733
Tolmachov Dmitiry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Пишешь сценарий, запускаешь его через SQL*Plus c оберткой командой spool.
...
Рейтинг: 0 / 0
08.02.2006, 15:28
    #33531756
Deniska2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Нашел по поиску

В принципе http://]http://www.sql.ru/forum/actualthread.aspx?tid=148195&hl=%f1%ee%f5%f0%e0%ed%e8%f2%fc+%f0%e5%e7%f3%eb%fc%f2%e0%f2+%e7%e0%ef%f0%ee%f1%e0+%f4%e0%e9%eb
подходит, вот только скажите. как переменной присвоить значение выборки и потом вывести ее на печать.
пишу следующее

spool c:\1.csv

DECLARE
p_name_cln varchar2(50);

begin
DBMC_OUTPUT.PUT_LINE ('Название клиента');

RC:=(select p.name_cln
from clients p
where p.client_id not in (select client_id from payment t
where t.date_doc>='01.10.2005') and p.status=2 and p.reg_date<='31.12.2005');

if RC IS NOT NULL THEN

DBMC_OUTPUT.PUT_LINE (RC);
end if;
end;

/
spool off
...
Рейтинг: 0 / 0
08.02.2006, 16:15
    #33531924
Proteus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Зачем так сложно... и неправильно...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SET heading off
SET linesize  32000 
SET pagesize  0 
SET colsep ,
SET feedback off
SPOOL c:\ 1 .csv
PROMPT Название клиента
SELECT P.NAME_CLN
  FROM CLIENTS P
 WHERE P.CLIENT_ID NOT IN(SELECT CLIENT_ID
                            FROM PAYMENT T
                           WHERE T.DATE_DOC >= '01.10.2005')
   AND P.STATUS =  2 
   AND P.REG_DATE <= '31.12.2005';
SPOOL off
...
Рейтинг: 0 / 0
09.02.2006, 07:18
    #33532891
Deniska2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
ProteusЗачем так сложно... и неправильно...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SET heading off
SET linesize  32000 
SET pagesize  0 
SET colsep ,
SET feedback off
SPOOL c:\ 1 .csv
PROMPT Название клиента
SELECT P.NAME_CLN
  FROM CLIENTS P
 WHERE P.CLIENT_ID NOT IN(SELECT CLIENT_ID
                            FROM PAYMENT T
                           WHERE T.DATE_DOC >= '01.10.2005')
   AND P.STATUS =  2 
   AND P.REG_DATE <= '31.12.2005';
SPOOL off

Это было то что нужно....... однако есть вопрос, - это написано на SQL. Но хранимые процедуры пишутся вроде на PL/SQL.......... Что надо изменить, чтобы можно этот же алгоритм запихнуть в хранимую процедуру???
...
Рейтинг: 0 / 0
09.02.2006, 11:25
    #33533410
Ky/|_XaLLKEP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Deniska2006 ProteusЗачем так сложно... и неправильно...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SET heading off
SET linesize  32000 
SET pagesize  0 
SET colsep ,
SET feedback off
SPOOL c:\ 1 .csv
PROMPT Название клиента
SELECT P.NAME_CLN
  FROM CLIENTS P
 WHERE P.CLIENT_ID NOT IN(SELECT CLIENT_ID
                            FROM PAYMENT T
                           WHERE T.DATE_DOC >= '01.10.2005')
   AND P.STATUS =  2 
   AND P.REG_DATE <= '31.12.2005';
SPOOL off

Это было то что нужно....... однако есть вопрос, - это написано на SQL. Но хранимые процедуры пишутся вроде на PL/SQL.......... Что надо изменить, чтобы можно этот же алгоритм запихнуть в хранимую процедуру???


begin
end
...
Рейтинг: 0 / 0
26.05.2006, 16:01
    #33754727
Сцобака
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Код: plaintext
1.
begin
end
так spool то все равно работает только в плюсе :(
а как лучше вилить результаты запроса
в файл?
...
Рейтинг: 0 / 0
26.05.2006, 16:03
    #33754740
iV@n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Сцобака
Код: plaintext
1.
begin
end
так spool то все равно работает только в плюсе :(
а как лучше вилить результаты запроса
в файл?
1. использовать плюс
2. utl_file
3. java
4. свой вариант :)
...
Рейтинг: 0 / 0
26.05.2006, 16:29
    #33754865
Сцобака
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
А про utl_file
здесь много написано, что это геморр и тормоза
мне нравится spool, но не охота привязываться к плюсу,
хочется, чтобы все вылилось из скрипта самой процы
но неужели нет аналога
в скрипте Pl/sql
...
Рейтинг: 0 / 0
26.05.2006, 16:33
    #33754882
Калина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
нету! и быть немогет!
ну можно еще недокументирована валить в Alert.log :-))))
авторздесь много написано, что это геморр и тормоза
грязные инсинуации!
гимора никакого
------------------------------
Not affilated with VAZ
...
Рейтинг: 0 / 0
26.05.2006, 16:45
    #33754922
Сцобака
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Kалина , а можно простой пример как например записать
Код: plaintext
select  2006  from dual union all select  2005  from dual
в файл 1.txt
...
Рейтинг: 0 / 0
26.05.2006, 16:50
    #33754941
Калина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
поиск отменили?
UTL_FILE ищем ?
------------------------------
Not affilated with VAZ
...
Рейтинг: 0 / 0
26.05.2006, 16:58
    #33754979
Калина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Гы , а вам небось надо еще 1.txt на клиенте создать?
UTL_FILE вам не поможет боюсь!
привязывайтесь к SQLPLUS
------------------------------
Not affilated with VAZ
...
Рейтинг: 0 / 0
26.05.2006, 17:09
    #33755030
Сцобака
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Гы... :)
И верно - на клиенте
Дасадна :)
...
Рейтинг: 0 / 0
26.05.2006, 17:13
    #33755050
Сцобака
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Тогда как запустить sqlplusw в фоновом режиме
и самое интресное как в него передать параметры,
которые будут использоваться в запросе?
...
Рейтинг: 0 / 0
26.05.2006, 17:15
    #33755059
Калина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Начать с документации наверное
параметры можно указать прямо в sql файле , а потом вызывать
sqlplus ! даже без W
------------------------------
Not affilated with VAZ
...
Рейтинг: 0 / 0
26.05.2006, 17:15
    #33755060
Сцобака
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Блин или пусть файл создается на сервере, а потом
забирать его клиентской прогой, хотя это конечно
некрасиво по моему.
...
Рейтинг: 0 / 0
26.05.2006, 17:16
    #33755062
Калина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
СцобакаБлин или пусть файл создается на сервере, а потом
забирать его клиентской прогой, хотя это конечно
некрасиво по моему.
а не проще сделать сохранение клиентсокй прогой?
...
Рейтинг: 0 / 0
26.05.2006, 17:18
    #33755074
iV@n
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
а может проще написать клиентскую прогу, которая будет брать данные с базы и писать их в файл на клиенте?
...
Рейтинг: 0 / 0
26.05.2006, 17:22
    #33755090
Сцобака
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
iV@n
точно! именно так и хотел с самого начала, но потом решил, что если все засунуть в процу на серваке, то будет круче
дасадна, но возвращаюсь обратно :)
хотя в приципе на клиенте проще заюзать плюс+спул
но если нельзя в фоновом режиме и с параметрами,
то остается писать в самой проге
компромис найден :)
спасибо
...
Рейтинг: 0 / 0
26.05.2006, 19:41
    #33755429
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Сцобакано если нельзя в фоновом режиме и с параметрами,
Ну раз ленитесь читать - тогда пишите, пишите
Маленькая подсказка:
Код: plaintext
c:\>start /?
Далее - в MSDN за CreateProcess.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.11.2017, 10:21
    #39550737
Mikeor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить результат запроса в файл?
Deniska2006Нашел по поиску

В принципе http://] http://www.sql.ru/forum/actualthread.aspx?tid=148195&hl=????????? ????????? ??????? ????
подходит, вот только скажите. как переменной присвоить значение выборки и потом вывести ее на печать.
пишу следующее

spool c:\1.csv

DECLARE
p_name_cln varchar2(50);

begin
DBMC_OUTPUT.PUT_LINE ('Название клиента');

RC:=(select p.name_cln
from clients p
where p.client_id not in (select client_id from payment t
where t.date_doc>='01.10.2005') and p.status=2 and p.reg_date<='31.12.2005');

if RC IS NOT NULL THEN

DBMC_OUTPUT.PUT_LINE (RC);
end if;
end;

/
spool off
Пример не работает
...
Рейтинг: 0 / 0
10.11.2017, 10:47
    #39550765
Как сохранить результат запроса в файл?
MikeorПример не работаетСпустя цать лет тебя осенило. Только вот зачем повторять сказанное еще тогда?
ProteusЗачем так сложно... и неправильно...
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как сохранить результат запроса в файл? / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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