|
|
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени суток! В скрипте объявил тип record, надергав в него нужных полей из нескольких таблиц. Пример Код: plsql 1. 2. 3. 4. 5. 6. 7. Но захотелось большего - вместо перечисления всех полей главной таблицы (их там много) указать scott.t1%rowtype, а дальше добавить дополнительные поля из других таблиц. Сделал: Пример Код: plsql 1. 2. 3. 4. 5. 6. Но при select t1.*, t2.status_name into v_call from t1 left join t2... получаю ошибку "expression v_call in the INTO list is of wrong type". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 17:54 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
GroMoZeKazzzСделалты сделал рекорд рекорда. Все равн потом используешь селект инту, так объяви его курсором и бери рекорд от него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 18:11 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
-2-ты сделал рекорд рекорда. Все равн потом используешь селект инту, так объяви его курсором и бери рекорд от него. Я только в начале пути познания :) Сделал так: как-то Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Ошибка та же: PLS-00597: expression 'r_call' in the INTO list is of wrong type ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 18:41 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
Вот так работает :) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 18:49 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
мои 2 копейки: если в начале пути, то еще есть время поменять привычку именовать переменные с префиксом v_ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 07:09 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
brzl, какой префикс каноничен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 10:03 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
по области видимости: l_ - local (локальная, внутри блока, процедуры) g_ - global (глобальная в пакете) еще, c_ - constant( константы ) p_ - параметры в процедурах, функциях, методах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 10:21 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
brzlпо области видимостиА по типу данныхъ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 10:25 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
GroMoZeKazzzкакой префикс каноничен?В каждом монастыре свой устав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 10:28 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
AmKadА по типу данныхъ? В общем случае, никак. Типов данных может быть очень много. Придумывать каждому префикс, суффикс... Для коллекций можно указать суффикс _tbl или второй префикс _tbl_ например, но в основном стараться писать от бизнес логики/здравого смысла. Если переменная коллекция ордеров, так и называем l_orders. l_orders_tbl, l_tbl_orders в данном случае избыточен. Первый префикс уже дает понять, где искать объявление переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 11:01 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
brzlВ общем случае, никак. Типов данных может быть очень много. Придумывать каждому префикс, суффикс... Венгерская нотация . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 11:32 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
AmKadbrzlпо области видимостиА по типу данныхъ? А зачем? Изнутри - и так перед глазами. Снаружи - перегружать неудобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 11:59 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
brzlпо области видимости: l_ - local (локальная, внутри блока, процедуры) g_ - global (глобальная в пакете) еще, c_ - constant( константы ) p_ - параметры в процедурах, функциях, методах p i o io ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 12:00 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
Всем благодарочка за науку! Буду дальше двигаться по пути познания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 12:30 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
XMLerbrzlp_ - параметры в процедурах, функциях, методахp i o ioа как же copy-nocopy. XMLerСнаружи - перегружать неудобно.Работал в конторе, где не только параметрам, но и именам полей писался префикс F<тип>. Причем различались целые-дробные, дата-таймстамп. Чтобы в редакторе не набирать все поле целиком, получив подсказку, нужно заранее знать тип и жмакать лишние клавиши префикса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 12:31 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
brzlпо области видимости: l_ - local (локальная, внутри блока, процедуры) g_ - global (глобальная в пакете) еще, c_ - constant( константы ) p_ - параметры в процедурах, функциях, методахА что, только переменные. Процедуры-функции и объявления типов тоже могут быть "глобальными" и "локальными". Ну и атрибуты объектных типов по области видимости "глобальные" в динамических методах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 12:41 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
Холивар делать не стоит, как написали выше "...свой устав.." XMLerp i o io Но, не могу себе представить когда бы мне понадобилось знать in или out параметр. io еще может быть полезен снаружи, если не знаешь описание процедуры и читаешь чужой код. На мой взгляд избыточно. И я стараюсь все-таки чтобы функции возвращали значения, out параметры минимизирую. -2-А что, только переменные. Процедуры-функции и объявления типов тоже могут быть "глобальными" и "локальными". Только для переменных и с упором на область видимости. Объявление типа локально и глобально с одним и тем же названием? Ну за это наверное надо "выговор". Процедуры и функции локальные использовать в крайнем, а лучше никогда. Процедуры и функции без префисков, суффиксов. Название должно отражать суть. get_status - функция, возвращающая статус. set_status - процедура, устанавливающая статус. -2-Ну и атрибуты объектных типов по области видимости "глобальные" в динамических методах. Можешь показать пример о чем речь? Ну и в продолжении 2 копеек, руководствоваться не только бизнес логикой/здравым смыслом, но и английским языком. Переменные/столбцы: kredit, gorod и т.д. и т.п ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 13:10 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
brzlПроцедуры и функции без префисков, суффиксовВ чем отличие функций и переменных в контексте вопроса именования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 13:17 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
brzlПеременные/столбцы: kredit, gorod и т.д. и т.п * запретить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 13:20 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
-2-В чем отличие функций и переменных в контексте вопроса именования? Они отражают действие, это действие отражено в их наименовании. Put, get, save Переменные же контейнер для данных с бизнес смыслом. Префикс им нужен (l_,g_), чтобы не путать с полями в таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 13:29 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
brzl-2-В чем отличие функций и переменных в контексте вопроса именования? Они отражают действие, это действие отражено в их наименовании. Put, get, save Переменные же контейнер для данных с бизнес смыслом. Префикс им нужен (l_,g_), чтобы не путать с полями в таблицах. Функция это не действие , get_status, из примера, тавтология, status - самое оно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 13:39 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
brzlОни отражают действие, это действие отражено в их наименовании. Put, get, save save_state это действие статуса или статус действия? brzlчтобы не путать с полями в таблицах.Коллизии имен пакетов-процедур могут быть фатальнее некорректного результата "путать". Код: plsql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 13:52 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
-2-XMLerпропущено... p i o ioа как же copy-nocopy. А зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 14:19 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
XMLer-2-пропущено...а как же copy-nocopy.А зачем?Параметры nocopy в случае исключения могут вернуть нецелостное состояние. А вообще, это сарказм. Префиксы io_ это уже крайняя степень маразма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 15:33 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
-2-Префиксы io_ это уже крайняя степень маразма. Аргументируй, пожалуйста. Что плохого в том чтобы обратить внимание разработчика, пишущего вызов процедуры, на то что значение его переменной изменится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 16:56 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
XMLer-2-Префиксы io_ это уже крайняя степень маразма. Аргументируй, пожалуйста. Что плохого в том чтобы обратить внимание разработчика, пишущего вызов процедуры, на то что значение его переменной изменится?То, что и так однозначно определяется сигнатурой процедуры/функции крайне маразматично дублировать в именах параметров. Это так же бредово как делать в названии таблицы префикс/суфикс tbl или в название поля добавлять тип. В мире много талантов называющих атрибуты типа created_tstamp вместо created, но это не значит что в этом много здравого смысла. Цель всех стандартов и уставов, чтоб уменьшить количество энтропии, а не наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 17:18 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopТо, что и так однозначно определяется сигнатурой процедуры/функции крайне маразматично дублировать в именах параметров. Следуя твоей логике перечисление параметров при вызове тоже маразматичнo? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 18:05 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
XMLer, Речь идет про необходимость (не)использовать именную нотацию вместо позиционной или что? Также не очень понятно как это следует из сказанного мной выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 18:12 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
XMLerЧто плохого в том чтобы обратить внимание разработчика, пишущего вызов процедуры, на то что значение его переменной изменится?Чтобы, не смотря спеку, помнить, с чего начинаются имена параметров, но забыть для чего они предназначены, нужна очень избирательно-специфичная амнезия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2018, 23:05 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopРечь идет про необходимость (не)использовать именную нотацию вместо позиционной или что? Да. Именная нотация прекрасно подходит под твое определение: dbms_photoshopТо, что и так однозначно определяется сигнатурой процедуры/функции крайне маразматично дублировать в именах параметров. При этом я категорически против использования позиционной нотации в промышленных проектах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 11:56 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
-2-XMLerЧто плохого в том чтобы обратить внимание разработчика, пишущего вызов процедуры, на то что значение его переменной изменится?Чтобы, не смотря спеку, помнить, с чего начинаются имена параметров, но забыть для чего они предназначены, нужна очень избирательно-специфичная амнезия. Ок, убедил :) Это требование облегчает жизнь не тем кто пишет, а тем кто читает. Когда я первый раз увидел это требование, моя реакция была примерно как у тебя и Алекса. Это было требование для одного проекта, начатого лет 5 назад и ныне существующего в виде коробки и нескольких десятков кастомных версий. Но на этом проекте я почти не писал код, мне нужно было его читать и описывать. И вскоре я оценил эти требования, они позволили очень сильно сократить время чтения. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Для ответа на вопрос как формируется lValue не нужно спеку трех процедур, можно сразу проваливаться в третью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 12:28 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
XMLerПри этом я категорически против использования позиционной нотации в промышленных проектах Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 12:37 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
-2-XMLerПри этом я категорически против использования позиционной нотации в промышленных проектах Код: plsql 1. 2. 3. К чему ты это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 14:06 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
XMLer, Ты не используешь XMLerв промышленных проектах стандартные функции SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 14:21 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
envXMLer, Ты не используешь XMLerв промышленных проектах стандартные функции SQL? Конечно использую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 14:56 |
|
||
|
Тип record с дополнительным полем
|
|||
|---|---|---|---|
|
#18+
XMLerdbms_photoshopРечь идет про необходимость (не)использовать именную нотацию вместо позиционной или что? Да. Именная нотация прекрасно подходит под твое определение: dbms_photoshopТо, что и так однозначно определяется сигнатурой процедуры/функции крайне маразматично дублировать в именах параметров. При этом я категорически против использования позиционной нотации в промышленных проектахУ меня нет какого-то категоричного мнения по этому вопросу. Если до трех параметров, то использовал позиционную, когда больше - именную. Бывали и исключения. Еще из примеров излишков - это писать слова inner/outer в ANSI соединениях. Только не все, что можно опустить - излишек. Например, в insert into всегда перечислял список столбцов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2018, 14:57 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1884207]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 315ms |

| 0 / 0 |
