Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Вопросы по sqlPlus (теоретические)  [new]
Ameli2000
Member

Откуда: Санкт-Петербург
Сообщений: 9
Всем привет.
Начала тут изучение sqlPlus. Ну как изучение... попалось несколько примеров.
И вот что не могу понять.
Например, пишут такое:

....
SKIP left "Отгрузил: " out_name" skip2
BREAK ON out_name SKIP PAGE
-- main query
select out_name, in_name, organization from warehouse;
...

При этом, строка "Отгрузил: Иванов" печатается непосредственно перед выводом таблицы, т. е. skip2 не срабатывает. Никто не жалуется, просто мне непонятно.

Заодно поясните, пожалуйста, перед тем, как начать новый page, sqlPlus добавляет строку. Это можно как-то отменить?
13 ноя 17, 21:00    [20950864]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 552
Ameli2000,

set newpage none

.....
stax
14 ноя 17, 09:41    [20951403]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Ameli2000
Member

Откуда: Санкт-Петербург
Сообщений: 9
Stax, спасибо Вам.
Я так поняла, это ко второму вопросу?
14 ноя 17, 11:05    [20951756]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5533
Ameli2000
skip2

Вот так и написано?
14 ноя 17, 11:33    [20951914]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5533
Ameli2000,

SQL*Plus User's Guide and Reference
14 ноя 17, 11:38    [20951941]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 552
Ameli2000,

вопросы не пронумерованы, трудно сказать к чему я ето запостил

насчет
....
SKIP left "Отгрузил: " out_name" skip2

подозреваю что несколькими строчечками повыше есть ttitle и ети скипы относятся к ней

....
stax
14 ноя 17, 11:41    [20951966]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Ameli2000
Member

Откуда: Санкт-Петербург
Сообщений: 9
env,
Да, вот именно так и написано. Ошибка, видимо?
Доку читала в силу своего понимания, и вот именно это не нашла там. Но с моим знанием английского могла просто пропустить. Я так и подумала, что пробела не хватает. Но там часто такое встречается (в других примерах), неужели это везде ошибка? И вот в доке про пробелы ни слова.

-----------------------------------
Stax, простите. Конечно есть там, вот так выглядит полная строка.
TTITLE left "Склад: " whs_name -
SKIP left "Отгрузил: " out_name" skip2
Потеряла по дороге (

Вопрос 1 был про skip2

Вопрос 2 был про строку, которая добавляется перед каждым началом таблицы.
14 ноя 17, 13:31    [20952453]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 552
Ameli2000,
1)
на каждой странице сверху печатаем слева
склад ххх
в следующей строке (skip) слева печатаем
отгрузил ффф
пропускаем одну строку (через строку) skip 2

возможно что-то выводим

2) чтобы вначале страницы не было пустых строк поставить
set newpage none

.....
stax
14 ноя 17, 13:49    [20952566]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Ameli2000
Member

Откуда: Санкт-Петербург
Сообщений: 9
Stax, skip 2 можно написать без пробела (skip2)?
В оригинальном коде пробела нет, и в результате строка не пропускается. Как это интерпретирует sqlplus?

Спасибо Вам большое за помощь.
14 ноя 17, 14:14    [20952687]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 552
Ameli2000,

должна пропускаться, мож от версии зависит
по хорошому пробел надо

SQL> tti center Ameli2000  skip 2
SQL> select * from emp
  2  /
                                              Ameli2000
пустая строка
     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17.12.80        800                    20
      7499 ALLEN      SALESMAN        7698 20.02.81       1600        300         30
      7521 WARD       SALESMAN        7698 22.02.81       1250        500         30
      7566 JONES      MANAGER         7839 02.04.81       2975                    20
      7654 MARTIN     SALESMAN        7698 28.09.81       1250       1400         30
      7698 BLAKE      MANAGER         7839 01.05.81       2850                    30
      7782 CLARK      MANAGER         7839 09.06.81       2450                    10
      7788 SCOTT      ANALYST         7566 09.12.82       3000                    20
      7839 KING       PRESIDENT            17.11.81       5000                    10
      7844 TURNER     SALESMAN        7698 08.09.81       1500                    30
      7876 ADAMS      CLERK           7788 12.01.83       1100                    20
      7900 JAMES      CLERK           7698 03.12.81        950                    30
      7902 FORD       ANALYST         7566 03.12.81       3000                    20
      7934 MILLER     CLERK           7782 23.01.82       1300                    10

14 rows selected.


.....
stax
14 ноя 17, 14:51    [20952886]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Ameli2000
Member

Откуда: Санкт-Петербург
Сообщений: 9
Stax, спасибо Вам огромное. В целом, как работает skip я поняла (хе-хе), но именно вот отсутствие пробела смутило.
И вопрос я задала по-дурацки, что никто ничего не понял, а он был именно про отсутствие пробела.
При проверке без пробела как раз строка не пропускается, и собственно суть вопроса была - правильно ли это.
С другой стороны, не ясно, куда девается этот skip2, если в результате он не выводится, и строку не пропускает.
14 ноя 17, 15:19    [20953026]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 552
Ameli2000
Stax, спасибо Вам огромное. В целом, как работает skip я поняла (хе-хе), но именно вот отсутствие пробела смутило.
И вопрос я задала по-дурацки, что никто ничего не понял, а он был именно про отсутствие пробела.
При проверке без пробела как раз строка не пропускается, и собственно суть вопроса была - правильно ли это.
С другой стороны, не ясно, куда девается этот skip2, если в результате он не выводится, и строку не пропускает.


SQL> tti left Ameli2000 skip2 "ето не совсем так" skip3
SQL> select * from dept;

Ameli2000
 пустая строка skip2
ето не совсем так
 две пустые строки skip3

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON


.....
stax
14 ноя 17, 16:08    [20953253]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 8655
Ameli2000
В целом, как работает skip я поняла


Боюсь что не поняла. Слово SKIP конечно сбивает с толку, но доку ведь никто не отменял. SKIP N поставит <new line> N раз, т.е. первый <new line> закончит текущую строку. Так что SKIP N это N-1 пустая строка после текущей.

SY.
14 ноя 17, 16:16    [20953288]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Ameli2000
Member

Откуда: Санкт-Петербург
Сообщений: 9
Нет, у меня skip2 и выглядит это так:

ето не совсем так
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON


Именно поэтому и возник вопрос. Но я попробую ещё на простом примере.
14 ноя 17, 16:44    [20953423]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Ameli2000
Member

Откуда: Санкт-Петербург
Сообщений: 9
Добрый день.
Немного подниму тему. Опять неясности... (

Согласно документации, skip page в break делает разрыв в странице (т. е. начинает новую таблицу).
Вопрос такой:
break ON adres skip on dep skip page
следует расценивать как
сделать разрыв страницы при (1) изменении adres || dep или же (2) только dep ?
Если первое, то какой смысл имеет skip в
ON adres skip
?
16 ноя 17, 12:32    [20959523]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 552
Ameli2000,

SKI[P] n

Skips n lines before printing the row where the break occurred.

n у Вас сколько?

.....
stax
16 ноя 17, 15:13    [20960347]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Ameli2000
Member

Откуда: Санкт-Петербург
Сообщений: 9
Stax,
n у меня пропущен.

B, кажется, я теперь вообще перестала что-либо понимать в работе break
16 ноя 17, 17:01    [20960857]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 552
Ameli2000
Stax,
n у меня пропущен.

B, кажется, я теперь вообще перестала что-либо понимать в работе break


поставте n 1 (2, 3) и все наладится

зы
я так понимаю
по доке n обязателен

.....
stax
16 ноя 17, 17:07    [20960894]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Ameli2000
Member

Откуда: Санкт-Петербург
Сообщений: 9
Хех. Если бы я могла там что-то менять.
Моя задача - повторить отчёт в другой системе. И очень тяжело без возможности изменения понимать, как работает оригинальный отчёт.
Впрочем это не относится к теме.

Ещё раз Вам спасибо, Stax, что не бросаете меня )
16 ноя 17, 19:02    [20961334]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы по sqlPlus (теоретические)  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 552
Ameli2000
И очень тяжело без возможности изменения понимать, как работает оригинальный отчёт.


берете небольшую тестовую табличку (напр emp) и на ней тренеритесь
если визульно изменений не видно, можно сравнивать файлы

напр сравниваете результат для
1) break ON adres skip on dep
2) break ON adres skip 1 on dep
3) break ON adres on dep

так легче понять что имелось ввиду в доке

ps
break обычно скоррелирован с order by

.....
stax
17 ноя 17, 10:26    [20962574]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить