powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Нужна книга по изучению PL/SQL
25 сообщений из 67, страница 2 из 3
Нужна книга по изучению PL/SQL
    #40085703
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я начал в свое время с firststeps:
https://firststeps.ru/sql/oracle/oracle1.html
Это , конечно, древний-древний оракл, но почти все актуально и сейчас

потом документация(концепции), потом кайт
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40085764
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
legg
я начал в свое время с firststeps:
https://firststeps.ru/sql/oracle/oracle1.html
Это , конечно, древний-древний оракл, но почти все актуально и сейчас
Да.
Написано грамотно и нескучно.
С примерами для Oracle 8i (8.1.5)

Интересно, кто автор?
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40086643
legg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus
legg
я начал в свое время с firststeps:
https://firststeps.ru/sql/oracle/oracle1.html
Это , конечно, древний-древний оракл, но почти все актуально и сейчас
Да.
Написано грамотно и нескучно.
С примерами для Oracle 8i (8.1.5)

Интересно, кто автор?

на главной странице есть закладка авторы. Летучий Сергей Валерьевич
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40086651
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В дополнение к этой книге 22349886 когда-то очень помог Help по Oracle 8 (freeware by Nick E. Geht, Russia, Omsk, 1999).
Во многом было удобнее находить инфу, чем даже гуглением
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40086654
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выкладываю короче, вдруг пригодится.
А в интернете, возможно, уже и не найти
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40086655
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40086656
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
последний кусок
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133101
konaz_714
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Только сейчас заметил этот топик, решил ответить пользователю SQL*Plus
по всем пунктам.

автор1) "PL/SQL — «Procedural Language extensions to the Structured Query Language»,
что переводится как «Процедурные языковые расширения для языка SQL».

И откуда автор взял такую цитату?
Может из какой-то книжки издательства "Лори", которое славилось шершавым языком любительского перевода?
== Цитату я взял из книги Steven Feuerstein. Oracle PL/SQL Programming:
https://www.oreilly.com/library/view/oracle-plsql-programming/0596003811/ch01.html

автор2) Функция на языке Oracle PL/SQL Функция на языке PL/pgSQL PostgreSQL

О-ё-ёй.
Вот это код!
Вот это функция!
Её цель разрушить данные таблицы tab2?
Или для того, чтобы создать бесполезную нагрузку на базу данных?
== Цель приведения двух вариантов функции - показать сходство
синтаксических конструкций языков PL/SQL в Oracle и PL/pgSQL в PostgreSQL

автор3) PL/SQL, в отличие от Java, Python или C++, не используется для
разработки математических приложений, игр и т. п.
Это специфичный язык программирования третьего поколения, предназначенный
для работы с базами данных Oracle прямо в ядре сервера Oracle.

Странно, а Oracle Corporation считает, что PL/SQL - это язык четвёртого поколения:
"PL/SQL, . . . is an advanced fourth-generation programming language (4GL)." (см. выше)

== Tom Kyte обосновывает, что PL/SQL относится к 3 generation (3G):
https://asktom.oracle.com/pls/apex/asktom.search?tag=plsql-3gl


Рекомендую мою книгу прочитать полностью, она написана по итогам объемной
практики разработки на PL/SQL, также постарался учесть опыт
преподавания в течение 15 лет.

Взять учебно-методическое пособие по PL/SQL можно вот здесь

Если неудобно читать типографский макет с большими полями, то
без полей можно взять вот тут
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133140
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar
oraclepro
Gallemar,

Ответил.

Спасибо. Можете попробовать курс Игоря Мирончика, он староват, но довольно хорошо и детально объяснен.
На YT ищется без проблема.


там довольно много неточностей и много воды. но если не жалко времени, то какое-то представление даст, да.
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133162
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konaz_714
Здравствуйте.

Только сейчас заметил этот топик, решил ответить пользователю SQL*Plus
по всем пунктам.

автор1) "PL/SQL — «Procedural Language extensions to the Structured Query Language»,
что переводится как «Процедурные языковые расширения для языка SQL».

И откуда автор взял такую цитату?
Может из какой-то книжки издательства "Лори", которое славилось шершавым языком любительского перевода?

== Цитату я взял из книги Steven Feuerstein. Oracle PL/SQL Programming:
https://www.oreilly.com/library/view/oracle-plsql-programming/0596003811/ch01.html
Понятно.
Feuerstein не удосужился привести точное определение из документации.
Вы взяли цитату из его книги, тоже не проверив определение термина по документации.
И перевели его "шершавым языком любительского перевода".
В результате получилось то, что получилось. :-(

Повторю ещё раз:
"Хотя это не так уж важно, но точность никогда не бывает лишней."
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133166
konaz_714
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если уж про точность - посмотрите на заглавные буквы в начале каждого английского слова.
PL/SQL — Procedural Language extensions to the Structured Query Language
Это - не определение. Это - расшифровка аббревиатуры.
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133182
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konaz_714
Если уж про точность - посмотрите на заглавные буквы в начале каждого английского слова.
PL/SQL — Procedural Language extensions to the Structured Query Language
Это - не определение. Это - расшифровка аббревиатуры.

А с чего вы взяли что в расшифровке именно extension s , а не как extension?
И почему " to SQL", а не " of SQL"?

P.S. Точность по заглавным буквам слов - это что-то новое.
Очень похоже на "точное гадание по желудям" :-)
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133187
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konaz_714

автор2) Функция на языке Oracle PL/SQL Функция на языке PL/pgSQL PostgreSQL
автор (2)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
-- Функция на языке Oracle PL/SQL Функция на языке PL/pgSQL PostgreSQL
CREATE FUNCTION F1 RETURN INT AS
BEGIN
 FOR r IN (SELECT * FROM tab1) LOOP
    UPDATE tab2 SET at3=r.at2;
 END LOOP;
 RETURN 1;
END;


О-ё-ёй.
Вот это код!
Вот это функция!
Её цель разрушить данные таблицы tab2?
Или для того, чтобы создать бесполезную нагрузку на базу данных?
== Цель приведения двух вариантов функции - показать сходство
синтаксических конструкций языков PL/SQL в Oracle и PL/pgSQL в PostgreSQL

Рассмотрим приведенный выше вариант функции F1 .
1) Выполняется цикл по всем строкам таблицы tab1
2) Для каждой очередной выбранной строки таблицы tab1 выполняется команда UPDATE:
Атрибуту at3 таблицы tab2 присваивается текущее значение поля at2 записи r (r.at2).
Поскольку в команде UPDATE отсутствует фраза WHERE, изменяется значение at3 во всех строках таблицы tab2 .
3) Результатом выполнения приведенной функции будет изменение значения атрибута at3 во всех строках таблицы tab2
на значение атрибута at2 строки таблицы tab2 , которая была выбрана в цикле последней.

Итого:
п.2 приведет к бесполезной нагрузке на базу данных (в каждом цикле обновляются все строки tab2)
п.3 описывает, какое разрушительное действие на данные таблицы tab2 окажет выполнение функции F1
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133200
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konaz_714

автор3) PL/SQL, в отличие от Java, Python или C++, не используется для
разработки математических приложений, игр и т. п.
Это специфичный язык программирования третьего поколения, предназначенный
для работы с базами данных Oracle прямо в ядре сервера Oracle.

Странно, а Oracle Corporation считает, что PL/SQL - это язык четвёртого поколения:
"PL/SQL, . . . is an advanced fourth-generation programming language (4GL)." (см. выше)

== Tom Kyte обосновывает, что PL/SQL относится к 3 generation (3G):
https://asktom.oracle.com/pls/apex/asktom.search?tag=plsql-3gl

Tom Kyte замечательный очень известный специалист по технологиям Oracle.
Но Tom Kyte не является специалистом по классификации языков программирования.

В этой wiki-статье обсуждаются языки 4GL https://en.wikipedia.org/wiki/Fourth-generation_programming_language
В том числе, в качестве примеров в ней приводятся языки PL/SQL и Progress 4GL.
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133295
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konaz_714
Рекомендую мою книгу прочитать полностью, она написана по итогам объемной
практики разработки на PL/SQL, также постарался учесть опыт
преподавания в течение 15 лет.

Взять учебно-методическое пособие по PL/SQL можно вот здесь

Если неудобно читать типографский макет с большими полями, то
без полей можно взять вот тут

Дальше изложение материала пошло лучше, но как-то скачкообразно и хаотично.
(пока дочитал до стр. 39 "Обработка исключений")
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133480
konaz_714
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL*Plus, как дочитаете до конца, напишите мне, пожалуйста, замечания и предложения. Замечания сотрудников Oracle CIS в том тексте, что Вы читаете, исправлены. Ваши я обязательно учту во втором издании.
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133496
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konaz_714
SQL*Plus, как дочитаете до конца, напишите мне, пожалуйста, замечания и предложения. Замечания сотрудников Oracle CIS в том тексте, что Вы читаете, исправлены. Ваши я обязательно учту во втором издании.

Хорошо. Но не обещаю, что это произойдет очень скоро.

Кстати!
Можно было бы устроить публичное обсуждение книги, например, через Zoom.
Обсуждение записать, а вы потом на основе видеозаписи внесли бы улучшения, уточнения, дополнения, модернизацию.
Как вам такая идея?

P.S. Посмотрите нашу старую книжку.
Oracle7: Практическое руководство. Москва, "Софтсервис", 1997.

Раздел о PL/SQL в ней небольшой, но может быть всё же найдете, что-то полезное.
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133519
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konaz_714,

не читал (но файл сохранил)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
--в Oracle SQL до версии Oracle 12c максимальная длина CHAR была до 2000 байт
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
SQL> ed
Wrote file afiedt.buf

  1  <<m>>
  2  declare
  3   v char(32001) :='a';
  4  begin
  5   dbms_output.put_line(v);
  6* end m;
SQL> /
a

PL/SQL procedure successfully completed.

SQL>



такой блок считал именованным

.....
stax
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133520
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
konaz_714,

не читал (но файл сохранил)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
--в Oracle SQL до версии Oracle 12c максимальная длина CHAR была до 2000 байт
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
SQL> ed
Wrote file afiedt.buf

  1  <<m>>
  2  declare
  3   v char(32001) :='a';
  4  begin
  5   dbms_output.put_line(v);
  6* end m;
SQL> /
a

PL/SQL procedure successfully completed.

SQL>



такой блок считал именованным

В чем суть вашего замечания?

В "именовании" безымянных блоков?
в размере переменной типа char?
что-то другое?
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133544
konaz_714
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПосмотрите нашу старую книжку.
Oracle7: Практическое руководство. Москва, "Софтсервис", 1997.

Раздел о PL/SQL в ней небольшой, но может быть всё же найдете, что-то полезное.

Google пишет - за доступом к файлу обратитесь к владельцу
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133557
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konaz_714
авторПосмотрите нашу старую книжку.
Oracle7: Практическое руководство. Москва, "Софтсервис", 1997.

Раздел о PL/SQL в ней небольшой, но может быть всё же найдете, что-то полезное.

Google пишет - за доступом к файлу обратитесь к владельцу
Google модернизировал URL.

Исправил ссылку.
Теперь должно быть всё хорошо с доступом.

Проверьте, пожалуйста.
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133559
konaz_714
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL*Plus, скачивается, все отлично.
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133570
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему-то нигде не пишут в подобных книжках о том, что нельзя доверять значениям возвращаемым в out - параметрах,
даже если они nocopy, вы возникновении не перехватываемой в вызываемой процедуре ошибки.

Кроме того, в общем, выглядит как устаревшая до выхода, ориентация на версию 11.2
В современных версиях pl/sql набрал заметное количество отличий, в области организации циклов, итерации массивов и инициализации рекордов, достойных необходимого упоминания.
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133592
konaz_714
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
booby
почему-то нигде не пишут в подобных книжках о том, что нельзя доверять значениям возвращаемым в out - параметрах,
даже если они nocopy, вы возникновении не перехватываемой в вызываемой процедуре ошибки.

Кроме того, в общем, выглядит как устаревшая до выхода, ориентация на версию 11.2
В современных версиях pl/sql набрал заметное количество отличий, в области организации циклов, итерации массивов и инициализации рекордов, достойных необходимого упоминания.


По поводу out-параметров - посмотрите, пожалуйста, 113 страницу. Вы это имели в виду?
...
Рейтинг: 0 / 0
Нужна книга по изучению PL/SQL
    #40133602
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konaz_714,

там чепуха, сумбурный текст, не отвечающий формальному описанию, который лучше вообще выбросить.
ну, или заменить на аккуратный.

Он вводит в заблуждение, гарантируя, что значение переменной- приёмника out-параметра останется неизменным, что не соответствует формальным обещаниям, которые pl/sql заявляет в этом вопросе.
(Хотя, вполне возможно, именно это заблуждение калькой снято с бага в документации)
И ваш текст вообще не упоминает поведения в таком случае для out nocopy.

Во всех случаях возникновения ошибки, до присвоения возвращаемого значения out-параметру или после,
фактическое содержание переменной-приемника не гарантируется никак .

Оно может быть вообще любым - остаться в своем исходном значении, очиститься до null, содержать последнее присвоенное в процедуре значение или содержать некий случайный мусор.
Пользователю pl/sql предлагается считать, что он может содержать что угодно, даже если тот в своих экспериментах, как ему кажется, надежно, наблюдает детерминированное поведение.

Суть дела в том, что вы не должны, не имеете права использовать содержание переменной-приемника out-параметра,
каким бы оно ни оказалось фактически, для оценки произошедшего внутри процедуры, как и рассчитывать на то, что значение приемника останется неизменным.

То есть, если кто-то думает, что вот сейчас я присвою пять значению выходного параметра и выброшу свою ошибку общего плана,
то обработчик ошибки в вызывающей процедуре сумеет понять, что точно произошло и как с этой общей ошибкой обходиться,
то Oracle предлагает даже не начинать размышлять в таком стиле, даже если вы всегда получаете пять, или,
наоборот, всегда получаете Null в переменной приемнике, или всегда видите, что исходное значение в переменной-приёмнике осталось неизменным.
...
Рейтинг: 0 / 0
25 сообщений из 67, страница 2 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Нужна книга по изучению PL/SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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