powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Можно ли в sqplus вывести в файл только непосредственно рекордсет?
7 сообщений из 7, страница 1 из 1
Можно ли в sqplus вывести в файл только непосредственно рекордсет?
    #39465064
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно сформировать текстовый файл.
У меня есть SQL-запрос примерно такого вида:
Код: plsql
1.
2.
select ... as LINE
from ...


sqlplus вызываю примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
sqlplus ... <<EOF > /dev/null
set linesize 1000
set pagesize 0
set term off
set echo off
set head off
column LINE heading '' format a200
spool result.txt
select ... as LINE
from ...;
spool off
exit
EOF
Но в файле все равно есть посторонние строки (выполнение SQL, команда spool off и т.п.).
Их конечно можно убрать с помощью grep и head/tail.
А можно ли сделать так, чтобы в файл попало только содержимое выборки?
...
Рейтинг: 0 / 0
Можно ли в sqplus вывести в файл только непосредственно рекордсет?
    #39465065
coborhc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если использование SQL*PLUS не принципиально, то в sqlpptool.com скрипт вида:
spool c:\temp\test.txt
select
'test_line_' || level as str_field
from dual
connect by level <= 10;
spool off;

помещает в файл только строки выборки
...
Рейтинг: 0 / 0
Можно ли в sqplus вывести в файл только непосредственно рекордсет?
    #39465066
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно sqlplus использовать не обязательно.
Но утилита должна быть бесплатной и под Linux.
...
Рейтинг: 0 / 0
Можно ли в sqplus вывести в файл только непосредственно рекордсет?
    #39465069
coborhc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю, как под Linux, но в Win SQL*PLUS есть разница, как выполнять скрипт.
Сейчас поэкспериментировал.
Если выполнить команды скрипта непосредственно в окне, то в файле результата есть "лишние" строки.
Но если скрипт поместить в файл и из PLUS-а выполнить посредством команды:
@script_filename.sql
то в результирующем файле "лишних" строк нет.
...
Рейтинг: 0 / 0
Можно ли в sqplus вывести в файл только непосредственно рекордсет?
    #39465070
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Командами окончательно убрать лишний текст так и не удалось.
А вот опция -s делает то что нужно.
...
Рейтинг: 0 / 0
Можно ли в sqplus вывести в файл только непосредственно рекордсет?
    #39465090
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечный вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
sqlplus -S usr/pwd@//server:port/db <<EOF > /dev/null
set SQLPROMPT ''
set SQLNUMBER off
set ESCAPE '\'
set ECHO off
set VERIFY off
set SERVEROUTPUT off
set TERM off
set TERMOUT off
set HEADING off
set HEAD off
set FEEDBACK off
set FEED off
set WRAP off
set TRIMOUT on
set TRIMSPOOL on
set PAGESIZE 0
set LINESIZE 0
set PAGES 0

spool sessions.txt
<sql-запрос>;
spool off

exit
EOF
Не знаю, может что-то лишнее, но в таком виде получаю нужное — текстовый файл без лишних данных.
...
Рейтинг: 0 / 0
Можно ли в sqplus вывести в файл только непосредственно рекордсет?
    #39465826
Где-то так
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
set linesize 120 - по желанию
set pagesize 0
set timing off
set feedback off
set verify off
set head off
set echo off
set trimspool on
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Можно ли в sqplus вывести в файл только непосредственно рекордсет?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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