|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Здравствуйте, посоветуйте идеальный на ваш взгляд учебник, для изучения PL/SQL. Желательно, чтобы при изучении создавался какой-то проект, было максимум программирования. Кстати, может вам попадались такие учебники, где изначально создаются таблицы и уже основываясь на них создавать какие-либо блоки, функции, процедуры и так далее. Если есть видео уроки, то можно тоже глянуть. Но предпочтительно книга, хоть она и кажется бездушной, но в большей части, она более точная чем мысли на видео. Купил как-то курс по PL/SQL... Спустил деньги просто так. Почему так дофига уроков по Java, Python, JS, а по PL/SQL материала настолько мало, что его реально трудно отсеять. Условно, учи из того что есть. Хотя раньше, наверное так и было, а нам молодежи, все мало. Ребят, надеюсь на ваш отклик. Люди которые хотят вставить свои три копейки и не дать совета, проходите мимо, только потратите свое время и репутацию (буду отправлять жалобу). Я может плохо прошерстил этот форум, но почему это не закреплённый вопрос, он ведь тоже часто задаётся. Видел ниже, один скинул книгу 90 го года, другой шутки шутит. Форум умер что ли ? Странно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:45 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
PL/SQL User Guide and Reference. PL/SQL Packages and Types Reference. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:59 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Steven Feuerstein, Oracle PLSQL Programming, 2014 Donald J. Bales (auth.), Beginning Oracle PL/SQL, 2015 Задворьев И.С., Язык PL-SQL., 2017 Saurabh K. Gupta, Advanced Oracle PL/SQL Developer’s Guide [2 ed.], 2016 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 21:06 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
iehf, Огромное спасибо за этот список книг. Какая больше всего понравилась по содержанию и какую бы отметили самой лучшей для новичков среди перечисленных ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 23:49 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, спасибо большое. Да, документацию читать тоже нужно, согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 23:50 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
iehf Задворьев И.С., Язык PL-SQL., 2017 Решил посмотреть, что это за книга такая? http://blog.parvenu.ru/sql/2017-Задворьев И. С. - Язык PL_SQL-good.pdf Забавно стало уже на первой странице текста (стр. 3) автор (1)"PL/SQL — «Procedural Language extensions to the Structured Query Language», что переводится как «Процедурные языковые расширения для языка SQL». И откуда автор взял такую цитату? Может из какой-то книжки издательства "Лори", которое славилось шершавым языком любительского перевода? Документация по Oracle19c, Oracle 11g R2 пишет короче: "PL/SQL, the Oracle procedural extension of SQL" В документации по Oracle8i, Oracle10gR2 формулировка длиннее: "PL/SQL, Oracle’s procedural extension of SQL, is an advanced fourth-generation programming language (4GL)." В документации по Oracle8 формулировка длинная, но короче 8i: PL/SQL is Oracle’s procedural extension to SQL, the standard database access language. В документации по Oracle7 формулировка еще длиннее: "PL/SQL is Oracle Corporation's procedural language extension to SQL, the standard data access language for relational databases." Хотя это не так уж важно, но точность никогда не бывает лишней. автор (2) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
О-ё-ёй. Вот это код! Вот это функция! Её цель разрушить данные таблицы tab2? Или для того, чтобы создать бесполезную нагрузку на базу данных? И функция выполняющая изменение данных - это плохой стиль программирования. Разве нет? автор (3)PL/SQL, в отличие от Java, Python или C++, не используется для разработки математических приложений, игр и т. п. Это специфичный язык программирования третьего поколения , предназначенный для работы с базами данных Oracle прямо в ядре сервера Oracle. Странно, а Oracle Corporation считает, что PL/SQL - это язык четвёртого поколения: "PL/SQL, . . . is an advanced fourth-generation programming language ( 4GL )." (см. выше) Мда-а-а-а-а уж Я бы не рекомендовал такую книгу для серьезного изучения языка PL/SQL. Пока это выглядит, как какое-то юмористическое издание :-) Одну страницу прочитал. Завтра попробую почитать дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 01:04 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
SQL*Plus, Спасибо за комментарий. Начал я с документации всё-таки. Честно говоря, надо было начать с неё ещё очень и очень давно... Жаль что потратил очень много времени на поиски "Волшебной таблетки!". В итоге, все сводится к документации. Единственный плюс видео это визуализация того, о чем идет речь. Но порой, под эти видео начинаю засыпать...... Под документации, книги - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 01:23 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
SQL*Plus, Думаю что было бы круто, в будущем тут запилить отдельную тему касательно обучения. Если будет на это все время, обязательно вернусь к этому вопросу, примерно через год, а люди с опытом побольше добьют тему. Нужна ветка :) короче. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 01:29 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
oraclepro, Steven Feuerstein, Oracle PLSQL Programming - это классика. Очень хорошая книга. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 01:47 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
не четал, но осуждаю! SQL*Plus iehf Задворьев И.С., Язык PL-SQL., 2017 Решил посмотреть, что это за книга такая? http://blog.parvenu.ru/sql/2017-Задворьев И. С. - Язык PL_SQL-good.pdf Забавно стало уже на первой странице текста (стр. 3) автор (1)"PL/SQL — «Procedural Language extensions to the Structured Query Language», что переводится как «Процедурные языковые расширения для языка SQL». И откуда автор взял такую цитату? Может из какой-то книжки издательства "Лори", которое славилось шершавым языком любительского перевода? Документация по Oracle19c, Oracle 11g R2 пишет короче: "PL/SQL, the Oracle procedural extension of SQL" В документации по Oracle8i, Oracle10gR2 формулировка длиннее: "PL/SQL, Oracle’s procedural extension of SQL, is an advanced fourth-generation programming language (4GL)." В документации по Oracle8 формулировка длинная, но короче 8i: PL/SQL is Oracle’s procedural extension to SQL, the standard database access language. В документации по Oracle7 формулировка еще длиннее: "PL/SQL is Oracle Corporation's procedural language extension to SQL, the standard data access language for relational databases." Хотя это не так уж важно, но точность никогда не бывает лишней. автор (2) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
О-ё-ёй. Вот это код! Вот это функция! Её цель разрушить данные таблицы tab2? Или для того, чтобы создать бесполезную нагрузку на базу данных? И функция выполняющая изменение данных - это плохой стиль программирования. Разве нет? автор (3)PL/SQL, в отличие от Java, Python или C++, не используется для разработки математических приложений, игр и т. п. Это специфичный язык программирования третьего поколения , предназначенный для работы с базами данных Oracle прямо в ядре сервера Oracle. Странно, а Oracle Corporation считает, что PL/SQL - это язык четвёртого поколения: "PL/SQL, . . . is an advanced fourth-generation programming language ( 4GL )." (см. выше) Мда-а-а-а-а уж Я бы не рекомендовал такую книгу для серьезного изучения языка PL/SQL. Пока это выглядит, как какое-то юмористическое издание :-) Одну страницу прочитал. Завтра попробую почитать дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 01:49 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
oraclepro Купил как-то курс по PL/SQL... Спустил деньги просто так. Что за курс? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 09:05 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
oraclepro посоветуйте идеальный на ваш взгляд учебник, для изучения PL/SQL. https://www.combook.ru/product/10337689/ ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 10:54 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
https://www.combook.ru/product/11304086/ Oracle PL/SQL за 10 минут https://www.combook.ru/product/11304086/ В книге даются простые и практические ответы на вопросы, требующие быстрого решения. Этот краткий справочник состоит из 26 уроков. Потратив не более 10 минут на каждый (или даже меньше!), вы научитесь всему, что требуется знать, чтобы выгодно пользоваться языком PL/SQL в работе с СУБД Oracle. Вот это я понимаю! Код: plsql 1. 2. 3. 4. 5.
4 часа 20 минут и научился всему PL/SQL! А мы тут корячимся месяцами и годами... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 12:27 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
oraclepro, Мне очень помогла книга Скотт Урман: Oracle 9i: Программирование на языке PL/SQL вот сейчас посмотрел, после вышло издание Oracle10g: Программирование на языке PL/SQL . Правда я её не открывал, не знаю что там добавили / убрали ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 14:27 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
P.S. найти PDF в интернете не проблема, но бумажная всё-же лучше. поискал для вас на сайте books.ru при поиске вот эта вроде бы была "в продаже" https://www.books.ru/books/oracle-database-10g-programmirovanie-na-yazyke-plsql-525872/?show=1 8.65 EURO ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 14:51 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
oraclepro Купил как-то курс по PL/SQL... Спустил деньги просто так Расскажи про курс, другим будет полезно знать ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 16:10 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
oraclepro iehf, Огромное спасибо за этот список книг. Какая больше всего понравилась по содержанию и какую бы отметили самой лучшей для новичков среди перечисленных ? Классика Steven Feuerstein, Oracle PLSQL Programming, 2014 на русском есть: Фейерштейн С., Прибыл Б. Oracle PL-SQL для профессионалов [6-е ed.] ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 16:33 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
iehf oraclepro iehf, Огромное спасибо за этот список книг. Какая больше всего понравилась по содержанию и какую бы отметили самой лучшей для новичков среди перечисленных ? Классика Steven Feuerstein, Oracle PLSQL Programming, 2014 на русском есть: Фейерштейн С., Прибыл Б. Oracle PL-SQL для профессионалов [6-е ed.] вот тоже ничего так: Benjamin Rosenzweig, Elena Rakhimov Prentice Hall Professional Oracle, Oracle PL/SQL by Example [5 ed.], 2015 Michael McLaughlin, Oracle Database 12c PL/SQL Programming [1 ed.], 2014 да много еще, выбор есть ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 16:38 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Кроик Семён, приветствую. Огромное Вам спасибо за информацию. Будет стоять в очереди на прочтение. Сейчас начал читать документацию Oracle, ну что сказать, информации уйму, но в книгах немного другой подход (полегче наверное). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 23:31 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Gallemar, Приветствую. Покупал тут: https://prime-soft.biz/courses/plsql Я в буквальном смысле потратил очень много времени на освоение, и честно скажу "НЕ-ПО-НЯ-ТНО". Смотрел урок, пересматривал, и снова. Возможно уроки нормально будут восприниматься тогда, когда уже будет некая база знаний. Могу накидать ссылки, без данных моей учетки под которой нужно логинится к БД для того чтобы проходить эти уроки. Почему без данных моей учетки? -> я бы хотел оставаться анонимным, хотя бы какое-то время, пока мне не будет совсем уж все-равно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 23:47 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
oraclepro, отвечу на свое сообщение: авторЯ в буквальном смысле потратил очень много времени на освоение, и честно скажу "НЕ-ПО-НЯ-ТНО". в итоге я не осилил, и сдался на 4-м уроке. 11200 рублей в помойку. Хотя знаете...опять же, всё зависит от человека. Но, я бы не рекомендовал начинать с этих видео в самом начале. Лучше уж просто посвятить время на чтение книг/документаций, чем смотреть эти видео. Да книги/документации бездушные, но вы знаете какой хороший эффект запоминания информации в отличии от тех же видеоуроков. Но что больше всего меня подтолкнуло купить видеоуроки, то, что я сразу видел куда мне тыкаться, как это работает, ну и то что они были на Русском языке. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 23:57 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Gallemar, Ответил. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 23:59 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
oraclepro Gallemar, Ответил. Спасибо. Можете попробовать курс Игоря Мирончика, он староват, но довольно хорошо и детально объяснен. На YT ищется без проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 11:27 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
я начал в свое время с firststeps: https://firststeps.ru/sql/oracle/oracle1.html Это , конечно, древний-древний оракл, но почти все актуально и сейчас потом документация(концепции), потом кайт ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 13:57 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
legg я начал в свое время с firststeps: https://firststeps.ru/sql/oracle/oracle1.html Это , конечно, древний-древний оракл, но почти все актуально и сейчас Написано грамотно и нескучно. С примерами для Oracle 8i (8.1.5) Интересно, кто автор? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 17:37 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
SQL*Plus legg я начал в свое время с firststeps: https://firststeps.ru/sql/oracle/oracle1.html Это , конечно, древний-древний оракл, но почти все актуально и сейчас Написано грамотно и нескучно. С примерами для Oracle 8i (8.1.5) Интересно, кто автор? на главной странице есть закладка авторы. Летучий Сергей Валерьевич ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 10:42 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
В дополнение к этой книге 22349886 когда-то очень помог Help по Oracle 8 (freeware by Nick E. Geht, Russia, Omsk, 1999). Во многом было удобнее находить инфу, чем даже гуглением ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 10:54 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Выкладываю короче, вдруг пригодится. А в интернете, возможно, уже и не найти ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 10:55 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
последний кусок ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 10:55 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Здравствуйте. Только сейчас заметил этот топик, решил ответить пользователю 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 можно вот здесь Если неудобно читать типографский макет с большими полями, то без полей можно взять вот тут ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 12:19 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Gallemar oraclepro Gallemar, Ответил. Спасибо. Можете попробовать курс Игоря Мирончика, он староват, но довольно хорошо и детально объяснен. На YT ищется без проблема. там довольно много неточностей и много воды. но если не жалко времени, то какое-то представление даст, да. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 13:46 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
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 не удосужился привести точное определение из документации. Вы взяли цитату из его книги, тоже не проверив определение термина по документации. И перевели его "шершавым языком любительского перевода". В результате получилось то, что получилось. :-( Повторю ещё раз: "Хотя это не так уж важно, но точность никогда не бывает лишней." ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 14:20 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Если уж про точность - посмотрите на заглавные буквы в начале каждого английского слова. PL/SQL — Procedural Language extensions to the Structured Query Language Это - не определение. Это - расшифровка аббревиатуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 14:32 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714 Если уж про точность - посмотрите на заглавные буквы в начале каждого английского слова. PL/SQL — Procedural Language extensions to the Structured Query Language Это - не определение. Это - расшифровка аббревиатуры. А с чего вы взяли что в расшифровке именно extension s , а не как extension? И почему " to SQL", а не " of SQL"? P.S. Точность по заглавным буквам слов - это что-то новое. Очень похоже на "точное гадание по желудям" :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 14:50 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714 автор2) Функция на языке Oracle PL/SQL Функция на языке PL/pgSQL PostgreSQL автор (2) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
О-ё-ёй. Вот это код! Вот это функция! Её цель разрушить данные таблицы 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 14:52 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 15:07 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714 Рекомендую мою книгу прочитать полностью, она написана по итогам объемной практики разработки на PL/SQL, также постарался учесть опыт преподавания в течение 15 лет. Взять учебно-методическое пособие по PL/SQL можно вот здесь Если неудобно читать типографский макет с большими полями, то без полей можно взять вот тут Дальше изложение материала пошло лучше, но как-то скачкообразно и хаотично. (пока дочитал до стр. 39 "Обработка исключений") ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 18:47 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
SQL*Plus, как дочитаете до конца, напишите мне, пожалуйста, замечания и предложения. Замечания сотрудников Oracle CIS в том тексте, что Вы читаете, исправлены. Ваши я обязательно учту во втором издании. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:33 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714 SQL*Plus, как дочитаете до конца, напишите мне, пожалуйста, замечания и предложения. Замечания сотрудников Oracle CIS в том тексте, что Вы читаете, исправлены. Ваши я обязательно учту во втором издании. Хорошо. Но не обещаю, что это произойдет очень скоро. Кстати! Можно было бы устроить публичное обсуждение книги, например, через Zoom. Обсуждение записать, а вы потом на основе видеозаписи внесли бы улучшения, уточнения, дополнения, модернизацию. Как вам такая идея? P.S. Посмотрите нашу старую книжку. Oracle7: Практическое руководство. Москва, "Софтсервис", 1997. Раздел о PL/SQL в ней небольшой, но может быть всё же найдете, что-то полезное. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 13:51 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714, не читал (но файл сохранил) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
такой блок считал именованным ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 14:56 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Stax konaz_714, не читал (но файл сохранил) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
такой блок считал именованным В чем суть вашего замечания? В "именовании" безымянных блоков? в размере переменной типа char? что-то другое? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 15:01 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
авторПосмотрите нашу старую книжку. Oracle7: Практическое руководство. Москва, "Софтсервис", 1997. Раздел о PL/SQL в ней небольшой, но может быть всё же найдете, что-то полезное. Google пишет - за доступом к файлу обратитесь к владельцу ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 16:12 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714 авторПосмотрите нашу старую книжку. Oracle7: Практическое руководство. Москва, "Софтсервис", 1997. Раздел о PL/SQL в ней небольшой, но может быть всё же найдете, что-то полезное. Google пишет - за доступом к файлу обратитесь к владельцу Google модернизировал URL. Исправил ссылку. Теперь должно быть всё хорошо с доступом. Проверьте, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 16:44 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
SQL*Plus, скачивается, все отлично. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 16:54 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
почему-то нигде не пишут в подобных книжках о том, что нельзя доверять значениям возвращаемым в out - параметрах, даже если они nocopy, вы возникновении не перехватываемой в вызываемой процедуре ошибки. Кроме того, в общем, выглядит как устаревшая до выхода, ориентация на версию 11.2 В современных версиях pl/sql набрал заметное количество отличий, в области организации циклов, итерации массивов и инициализации рекордов, достойных необходимого упоминания. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 17:33 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
booby почему-то нигде не пишут в подобных книжках о том, что нельзя доверять значениям возвращаемым в out - параметрах, даже если они nocopy, вы возникновении не перехватываемой в вызываемой процедуре ошибки. Кроме того, в общем, выглядит как устаревшая до выхода, ориентация на версию 11.2 В современных версиях pl/sql набрал заметное количество отличий, в области организации циклов, итерации массивов и инициализации рекордов, достойных необходимого упоминания. По поводу out-параметров - посмотрите, пожалуйста, 113 страницу. Вы это имели в виду? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 18:12 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714, там чепуха, сумбурный текст, не отвечающий формальному описанию, который лучше вообще выбросить. ну, или заменить на аккуратный. Он вводит в заблуждение, гарантируя, что значение переменной- приёмника out-параметра останется неизменным, что не соответствует формальным обещаниям, которые pl/sql заявляет в этом вопросе. (Хотя, вполне возможно, именно это заблуждение калькой снято с бага в документации) И ваш текст вообще не упоминает поведения в таком случае для out nocopy. Во всех случаях возникновения ошибки, до присвоения возвращаемого значения out-параметру или после, фактическое содержание переменной-приемника не гарантируется никак . Оно может быть вообще любым - остаться в своем исходном значении, очиститься до null, содержать последнее присвоенное в процедуре значение или содержать некий случайный мусор. Пользователю pl/sql предлагается считать, что он может содержать что угодно, даже если тот в своих экспериментах, как ему кажется, надежно, наблюдает детерминированное поведение. Суть дела в том, что вы не должны, не имеете права использовать содержание переменной-приемника out-параметра, каким бы оно ни оказалось фактически, для оценки произошедшего внутри процедуры, как и рассчитывать на то, что значение приемника останется неизменным. То есть, если кто-то думает, что вот сейчас я присвою пять значению выходного параметра и выброшу свою ошибку общего плана, то обработчик ошибки в вызывающей процедуре сумеет понять, что точно произошло и как с этой общей ошибкой обходиться, то Oracle предлагает даже не начинать размышлять в таком стиле, даже если вы всегда получаете пять, или, наоборот, всегда получаете Null в переменной приемнике, или всегда видите, что исходное значение в переменной-приёмнике осталось неизменным. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 18:55 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
авторОно может быть вообще любым - остаться в своем исходном значении, очиститься до null, содержать последнее присвоенное в процедуре значение или содержать некий случайный мусор. Скажите, а можно про это где-то прочитать в авторитетных источниках? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 19:05 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714 авторОно может быть вообще любым - остаться в своем исходном значении, очиститься до null, содержать последнее присвоенное в процедуре значение или содержать некий случайный мусор. Скажите, а можно про это где-то прочитать в авторитетных источниках? +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 19:08 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714 авторОно может быть вообще любым - остаться в своем исходном значении, очиститься до null, содержать последнее присвоенное в процедуре значение или содержать некий случайный мусор. Скажите, а можно про это где-то прочитать в авторитетных источниках? Да-да, а то ваше эмоциональное сумбурное изложение "на пальцах", но без примеров может кого угодно запутать. Пока я понял, что в переменной для параметра OUT NOCOPY может быть случайное значение при аварии в вызываемой процедуре. И ничего странного я в этом не обнаружил. "Все почти с ума свихнулись, даже, кто безумен был..." (с) В. Высоцкий ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 19:14 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
konaz_714 авторОно может быть вообще любым - остаться в своем исходном значении, очиститься до null, содержать последнее присвоенное в процедуре значение или содержать некий случайный мусор. Скажите, а можно про это где-то прочитать в авторитетных источниках? о как, это ничего, что книжку вы пишите, а не я. Я же не спрашиваю, в каких авторитетных источниках вы взяли содержание 113 страницы, просто вижу, что чепуха. С полным отсутствием эмоций. И даже мне ( ) oracle не только не обещал легкого последующего доступа к своим ранее выложенным white papers, но и не давал обещания их хранить у себя сколько-нибудь долгое время. Была отдельная статья именно на эту тему, как раз во времена 11й версии. Точного названия и ссылки у меня нет, по памяти смысл названия был в духе "о гарантиях, которые предоставляет pl/sql" Цитировал я по памяти, с учетом того, что статье точно больше 10 лет уже. К счастью, именно этот момент они, наконец, включили в сжатом виде в документацию: https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-subprograms.html#GUID-518B8827-26CC-4734-B799-ACB038185638 If the subprogram ends with an exception, then the value of the actual parameter is undefined . В данном случае это надо понимать именно в смысле отсутствия каких бы то ни было гарантий на содержимое переменной - приемника. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 19:40 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
была еще статья 2003 года времен 10й версии от Charles Wetherell (ещё авторитетнее уже дальше некуда), "Freedom, Order, and PL/SQL Optimization" Во многих отношениях полезная, и прилегающая, там в широком плане рассматривается вопрос влияния исключений на порядок выполнения кода, но именно интересующего в моменте полезного фрагмента текста, за 30 секунд я не нашел. Сорри, на этом поиски я прекращаю, в надежде, что ссылки на официальную документацию достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 20:00 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
booby К счастью, именно этот момент они, наконец, включили в сжатом виде в документацию: https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-subprograms.html#GUID-518B8827-26CC-4734-B799-ACB038185638 If the subprogram ends with an exception, then the value of the actual parameter is undefined . В данном случае это надо понимать именно в смысле отсутствия каких бы то ни было гарантий на содержимое переменной - приемника. Очень хорошо, что вы это подчеркнули. И приведенная вами документация по Oracle 21c доходчиво описывает ситуацию: 9.7.3 Subprogram Parameter ModesRegardless of how an OUT or IN OUT parameter is passed:
В документации по Oracle 10g R2 пишут то же самое, но немного другими словами: "If you exit a subprogram successfully, PL/SQL assigns values to the actual parameters. If you exit with an unhandled exception, PL/SQL does not assign values to the actual parameters." В документации по Oracle 9i R2 и Oracle 8i пишут то же самое, но немного другими словами: "If you exit a subprogram successfully, PL/SQL assigns values to the actual parameters. However, if you exit with an unhandled exception, PL/SQL does not assign values to the actual parameters." If you exit a subprogram successfully, PL/SQL assigns values to the actual parameters. However, if you exit with an unhandled exception, PL/SQL does not assign values to the actual parameters. В итоге имеем давным-давно описанное в документации поведение: (1) Если подпрограмма заканчивается нормально, фактическое значение параметра равно последнему значению, присвоенному формальному параметру. (2) Если подпрограмма заканчивается с возбуждением исключения, фактическое значение параметра не определено. По-моему, вполне логичное поведение. Спасибо, что обратили на него наше внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 20:13 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
SQL*Plus .... However, if you exit with an unhandled exception, PL/SQL does not assign values to the actual parameters. .... Вот этого не "другими словами". Это буквально то, что порождает 113-ые страницы. Ясно, что человеку образованному, и с большим опытом, понять этого никакой возможности нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2022, 00:36 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
booby https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-subprograms.html#GUID-518B8827-26CC-4734-B799-ACB038185638 If the subprogram ends with an exception, then the value of the actual parameter is undefined . А парой абзацев ниже: When an OUT or IN OUT parameter is passed by reference, the actual and formal parameters refer to the same memory location. Therefore, if the subprogram changes the value of the formal parameter, the change shows immediately in the actual parameterА это надо понимать как гарантию на содержимое переменной - приемника. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2022, 09:11 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Elic ... А парой абзацев ниже: When an OUT or IN OUT parameter is passed by reference, the actual and formal parameters refer to the same memory location. Therefore, if the subprogram changes the value of the formal parameter, the change shows immediately in the actual parameter Может быть. При условии, что хинт nocopy действительно отработал и привел к передаче по ссылке. Я хорошо помню, как кто-то меня макал в неумение опознавать это на глаз Но такая гарантия мгновенной изменчивости приемника не имеет ничего общего с обещанием всегда оставить входной параметр в исходном значении при возникновении ошибки. PS Мне правда жаль, что у меня потеряна та статья, на которую я умственно ссылался. А Уизерела надо будет перечитать, при удобном случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2022, 14:18 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
я не знаю, с какой легкостью "Freedom, Order, and PL/SQL Optimization" сейчас отыскивается на OTN, поэтому приложу файл для желающих ознакомиться, если кто-то не читал ранее. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2022, 14:28 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
booby Elic А это надо понимать как гарантию на содержимое переменной - приемника. "is passed by reference" - это значит, что хинт nocopy сработал. booby Я хорошо помню, как кто-то меня макал в неумение опознавать это на глаз booby Но такая гарантия мгновенной изменчивости приемника не имеет ничего общего с обещанием всегда оставить входной параметр в исходном значении при возникновении ошибки. Я бы эту детскую боязнь сравнил с древней страшилкой, что когда-нибудь '' is null станет false. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2022, 16:47 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Что касается качества документации, то она, к сожалению, только ухудшается. Многие упоминания про undetermined results из неё пропадают в последних версиях. Или взять по той же ссылке дебильный пример: >=11gR2Formal OUT and IN OUT parameters can be returned in any order. In this example, the final values of x and y are undefined: Код: plsql 1. 2. 3. 4. 5.
На самом деле тут должно было быть приблизительно следующее:Может в какой-нибудь версии исправятFormal OUT and IN OUT parameters can be returned in any order. In this example, the final values of z are undefined: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Я лет 10 назад много раз убеждал Стивена, что это именно "are undefined". Похоже, что он согласился и донёс это тогда до Bryn Llewellyn. Но в документацию это попало в такой вот уё$ищной форме :( То же касается out-ов в EI. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2022, 17:31 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Elic Я бы эту детскую боязнь сравнил с древней страшилкой, что когда-нибудь '' is null станет false. Да, я помню такую оговорку в документации. Возможно, отражающую былые споры. По некоторому размышлению, пришел к надежде, что пока оракловым дедам удается игнорировать оптимизацию местного образования, этого не произойдет. По крайней мере, не при их жизни. Такой заход обязан порождать две конкатенации вместо одной. А чтобы умножать сущности, нужно быть молодым и рьяным. booby Ты начинаешь противоречить сам себе (и документации). initial<>undetermined Контекст обсуждения задан предложенной к изучению 113ой страницей книжки, ссылка на которую на предыдущей странице. Кстати, речь не идет об undetermined. Значение как-то всегда determined в конкретном вычислении в том отношении, что какое-то точно есть. Но оно undefined в смысле наличия гарантий на то, как именно должно быть описано поведение системы времени выполнения, следуя которому возможно не просто предсказать, какое оно будет, а предсказать специально в целях использования для построения вокруг этого поведения некоторой прикладной логики. Так получилось, что где-то в районе7-8 года, я сам страдал подобными идеями. Но вовремя попались под руку пара статей, одну из которых я выложил в предыдущем посте. Если ты случайно ее не читал, специально посмотри. Там и текст качественный, и автор - "главный по тарелочкам" в области pl/sql. То есть, попросту - научный руководитель проекта pl/sql. Elic ... "is passed by reference" - это значит, что хинт nocopy сработал. ... Я просто знаю, что документация давным-давно разъясняет, когда хинт "игнорируется" (просто из-за того, что нет чёткого "memory location"). Процедура с nocopy хинтом пишется один раз, а используется многократно и в разных условиях. В одних условиях вызова передача параметра произойдет по ссылке, в других будет образована копия в созданной для этой цели временной переменной. Если я правда собрался натягивать вокруг "гарантий" логику, я должен быть уверен, что в каждом случае, когда мне приспичило ей воспользоваться, она точно работает. Ура, я понял тогда, в интересовавших меня случаях, она точно не работает. нет чёткого "memory location" - классная формулировка 👍 ElicFormal OUT and IN OUT parameters can be returned in any order. In this example, the final values of z are undefined: Это про алиасинг. Тема хорошая, сам попадал "по молодости". Он может и без Out параметров возникать. "не ваше дело, в какой последовательности формируются out-параметры" - лишь вишенка на этом торте. Вот тут Коннор Макдоналд показывает примеры, выводящие на соседнюю тему - супер-агрессивность оптимизатора кода, например, в части оптимизации выражений. Не могу похвастать, что это вызывает у меня восторг до степени хлопанья в ладоши. https://connor-mcdonald.com/2019/04/16/pl-sql-dont-mix-and-match-scope/ (Я не прочитал, что поэтому поводу есть у автора обсуждаемой книжки) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2022, 18:52 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
booby Процедура с nocopy хинтом пишется один раз, а используется многократно и в разных условиях. В одних условиях вызова передача параметра произойдет по ссылке, в других будет образована копия в созданной для этой цели временной переменной. Если я правда собрался натягивать вокруг "гарантий" логику, я должен быть уверен, что в каждом случае, когда мне приспичило ей воспользоваться, она точно работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2022, 19:36 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Предлагаю вернуться к 113 странице обсуждаемой книги. Сейчас там написано вот так: авторОсновное отличие режима передачи OUT от режима IN OUT заключается в том, что OUT-параметр становится неинициализированным при передаче внутрь процедуры или функции, то есть то значение, которое имела во внешнем блоке переменная-фактический параметр, теряется (становится равным NULL). Это верно во всех случаях, за исключением ситуации, когда внутри процедуры или функции инициируется необработанное в ней исключение. Тогда во внешнем блоке у переменной-фактического параметра для формального OUT-параметра сохранится то ее значение, которое было до передачи. У фактических параметров для формальных IN OUT-параметров значение в NULL не сбрасывается. Если значение фактического параметра внутри программы не меняли, то и после завершения вызова программы оно будет таким же, каким оно было до передачи в программу. Приведем примеры передачи значений параметров в различных режимах. Неточность заключается вот в этом месте "Это верно во всех случаях, за исключением ситуации, когда внутри процедуры или функции инициируется необработанное в ней исключение. Тогда во внешнем блоке у переменной-фактического параметра для формального OUT-параметра сохранится то ее значение, которое было до передачи". Предлагается заменить в рукописи текст на автор"Это верно во всех случаях, за исключением ситуации, когда внутри процедуры или функции инициируется необработанное в ней исключение. Тогда во внешнем блоке у переменной-фактического параметра для формального OUT-параметра значение не определено". При желании можно еще расписать the semantics of an OUT parameter is a) set it to null b) call procedure c) upon success, copy the value back out Когда происходит исключение, 3 шаг не выполняется. При передаче OUT-параметра по ссылке с помощью конструкции NOCOPY это и приводит к неопределенности. И привести примеры 1 и 4 вот отсюда . ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 17:09 |
|
Нужна книга по изучению PL/SQL
|
|||
---|---|---|---|
#18+
Вот на всякий случай текст книги по PL/SQL в формате Microsoft Word. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 14:57 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1879507]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
others: | 304ms |
total: | 497ms |
0 / 0 |