powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ANN Руководство по языку SQL СУБД Firebird 3.0
25 сообщений из 345, страница 9 из 14
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39139644
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennis-r,

исправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39184322
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
улучшил навигацию по таблицам мониторинга и системным таблицам
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186167
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страница 319.

Типы хранимых процедурСуществуют два вида хранимых процедур — выполняемые хранимые процедуры (executable
stored procedures) и селективные процедуры (selectable stored procedures).


Очень хорошо, что процедуры стали называться "селективными" (раньше назывались "процедуры выбора").

Однако, в следующем абзаце они снова становятся "процедурами выбора".


Страница 319, 3й абзац снизу
Хранимые процедуры выбора
Хранимые процедуры выбора обычно осуществляют выборку данных из базы данных,
возвращает при этом произвольное количество строк. /* Кроме того, предложение не согласовано:"хранимые - возвращает" .*/
...
Страница 319, последний абзац Процедуры выбора могут иметь входные параметры и выходное множество, заданное в
предложении RETURNS заголовка процедуры.

Страница 320, первый абзацОбращение к хранимой процедуре выбора осуществляется при помощи оператора SELECT
(см. Выборка из селективной хранимой процедуры). См. пример создания хранимой процедуры
выбора
в конце раздела CREATE PROCEDURE главы «Операторы DDL».



Страница 320, 2й абзацСинтаксис создания выполняемых хранимых процедур и процедур выбора ничем не


Страница 320, 4й абзацЗаголовок хранимой процедуры обязательно содержит имя процедуры, которое должно
быть уникальным среди имён хранимых процедур, таблиц и представлений. В нем так
же может быть описано некоторое количество входных и выходных параметров. Входные
параметры перечисляются после имени процедуры внутри пары скобок. Выходные параметры,
которые являются обязательными для процедур выбора , перечисляются внутри пары скобок
в предложении RETURNS.


Страница 351, 2й абзац снизуПример 6.17. Использование оператора EXIT в процедуре выбора .

Страница 352, 2й абзац снизуПример 6.18. Использование оператора SUSPEND в процедуре выбора .

Страница 359Оператор FOR SELECT выбирает очередную строку из таблицы (представления, хранимой
процедуры выбора )

Страница 517, 2й абзац снизуДля хранимых процедур привилегия EXECUTE позволяет не только выполнять хранимые
процедуры, но и делать выборку данных из процедур выбора (с помощью оператора SELECT).

Страница 660, таблица, 2я строка снизуавтор1 — хранимая процедура выбора
(содержит в своём составе
оператор SUSPEND);
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186245
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

поправил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186609
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стр 319, 3й абзац снизу.Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных,
возвращает при этом произвольное количество строк.


Грамматическая ошибка. Правильные варианты:

1. Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных,
возвращают при этом произвольное количество строк.
2. Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных,
возвращ ая при этом произвольное количество строк.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186610
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То же самое - в руководстве FB 2.5, на стр 256.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186624
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис, а не добавить ли в доку некоторые нюансы про переменную row_count ?
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39186628
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

можно и добавить.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39187522
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

поправил

Таблоид,

добавил
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39189538
Minkus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinSspi надо Win_Sspi
стр.117 Compatibility Issues.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39189607
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Minkus,

вот ведь странный человек. Открываем 117 страницу Руководство по языку SQL СУБД Firebird 3.0 и видим, что никакого "Compatibility Issues." там нет.

Баги в Release Notes надо сообщать сюда
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39190216
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По какому принципу выстроены подразделы в DDL/DML? Лично я бы ожидал их отсортированными
по алфавиту. Сейчас минуту тупо пялился на список, пытаясь найти TABLE сразу перед TRIGGER...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39190255
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

особого порядка нет. А так в порядке того как обычно создаются объекты БД. Т.е до базы данных не создашь ничего, домены до таблиц, вьюхи на основе таблиц, потом триггеры... Хотя это не везде соблюдается. В принципе PDF содержит закладки (оглавление слева) по которому можно быстро переходить. В алфавитном индексе можно вообще все оператору по алфавиту смотреть. Но если есть идеи что улучшить предлагайте.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39190262
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисВ принципе PDF содержит закладки (оглавление слева)
Вот на него-то я и пялился. Обычно там всё-таки слова по алфавиту, для быстрого поиска.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194015
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стр 297, UPDATE
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Синтаксис: 

UPDATE target[[AS] alias] 
SET col= newval[, col= newval...] 
[WHERE {search-conditions| CURRENT OF cursorname}] 
 [PLAN plan_items]  
[ORDER BY sort_items] 
[ROWS m[TO n]] 
[RETURNING <returning_list>[INTO <variables>]]
. . .
Кляуза PLAN - указана, но пример с ней (именно для UPDATE) - стыдливо пропущен, объяснения даны для WHERE и затем перепрыгивают на ORDER BY
А я тут немного попытал кое-кого , и выяснилось вдруг, что можно указывать планы не только для примитивных update/delete случаев, но и в "сложносочетанных травмах", типа такой:
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
    recreate table company(id int not null primary key, contact_id int, company_name varchar(60));
    recreate table contact(id int not null  primary key using index contact_id, contact_name varchar(60));
    alter table company add constraint company_fk foreign key(contact_id) references contact(id);
    commit;

    insert into contact values(1, '+784956253581, Vovan');
    insert into contact values(2, '+375172223217, Shurik');
    insert into contact values(3, '+380442057337, Vitalik');

    insert into company values(100, 1, 'Pepsico, Inc.');
    insert into company values(101, 1, '');
    insert into company values(102, 2, 'Balaha, Inc.');
    insert into company values(103, 2, '');
    insert into company values(104, 2, null);
    insert into company values(105, 3, null);
    insert into company values(106, 3, 'Firebird Foundation');
    commit;

    set list on;

    select c.*
    from company c order by c.id;

    set plan on;
    set count on;

    update company c set c.company_name = 
    ( select k.contact_name 
      from contact k 
      where k.id = c.contact_id
       PLAN (K INDEX (CONTACT_ID)) 
    )
    where c.company_name is null or c.company_name = ''
     PLAN (C NATURAL) 
    ;

    set plan off;
    set count off;

    select c.*
    from company c order by c.id;
2 Денис : добавь в копилку, плз (2.5 & 3.0). Авось пригодится.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194078
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

про планы в подзапросах вообще ничего не сказано. На выходных постараюсь добавить. И про update/delete тоже

Тем не менее такие запросы как этот

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT *
FROM COLOR
WHERE EXISTS(
             SELECT *
             FROM HORSE
             WHERE HORSE.CODE_COLOR = COLOR.CODE_COLOR
             PLAN (HORSE INDEX (FK_HORSE_COLOR)))
PLAN(COLOR NATURAL) 



через некоторое время могут перестать работать с таким планом, если in/exists начнут выполняться как полу-джойн.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194086
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисмогут перестать работать с таким планомЭто уже будут проблемы индейцев, которые всунули PLAN-кляузу. Главное - зафиксировать в доке пример её применения, а про последствия можно и страшилку-предупреждалку красным цветом показать.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194093
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

это мои домыслы. Как появится ДЕ скажет точно.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194139
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
явные планы - зло :-) Уже сейчас они не работают на запросах сложнее линейных джойнов. Насчет semi-joins - можно просто их не применять, если указан явный план. Но если в целом говорить, то в будущем может что угодно отломиться на этот счет.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194175
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Dimitr!
You wrote on 17 марта 2016 г. 11:31:01:

Dimitr> Но если в целом говорить, то в будущем может что угодно отломиться на этот счет.
знаем. помним. 15 лет уже как ;)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194345
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrявные планы - зло :-) Уже сейчас они не работают на запросах сложнее линейных джойнов.
вот поэтому ждёмс нормальных хинтов. То же зло, но иногда необходимое. Кстати в планах на FB4 я их не заметил.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194418
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениспоэтому ждёмс нормальных хинтов. То же зло, но иногда необходимое.Когда в будущем нормальные хинты появятся -тогда и будущую доку (для соотв. версии ФБ) можно будет подправить. Выкинуть PLAN, добавить всякие там insert /*+ append */ into ...
А пока лучше добить работающими фрагментами кода ту, что имеем. С указанием страшилок, что "планы - это ууу! не хорошо!" и т.п.
ИМХО.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194425
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид, +100500!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39194451
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

будет, не волнуйся.
...
Рейтинг: 0 / 0
ANN Руководство по языку SQL СУБД Firebird 3.0
    #39195467
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg. 507
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ALTER USER
Назначение:  Изменение учётной записи пользователя Firebird.
Доступно в:  DSQL.
Синтаксис: 
ALTER {USER username| CURRENT USER}
{ 
[SET]
 [PASSWORD 'password'] 
[FIRSTNAME 'firstname']
[MIDDLENAME 'middlename']
[LASTNAME 'lastname']
[ACTIVE | INACTIVE]
[TAGS (<tag>| DROP tagname[, <tag>| DROP tagname...] )]
}
[USING PLUGIN 'pluginname'] 
[{GRANT | REVOKE} ADMIN ROLE];
Из синтаксиса вроде бы понятно, что кляузу password "лучше" указывать первой, но явно об этом не говорится (или же нельзя это выразить данной нотацией - не знаю :)).
Так что лучше об этом заявить во всеуслышание:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> create user foo password '123';
SQL> alter user foo firstname 'john'  password 'bar'  lastname 'smith';
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 1, column 33
-password
SQL> alter user foo firstname 'john' lastname 'smith'  password 'bar' ;
Statement failed, SQLSTATE = 42000
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 1, column 50
-password
SQL> alter user foo  password 'bar'  firstname 'john' lastname 'smith';
SQL>  -- только так прокатит --
...
Рейтинг: 0 / 0
25 сообщений из 345, страница 9 из 14
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ANN Руководство по языку SQL СУБД Firebird 3.0
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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