Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Помогите сравнить, выскажите свои мнения по поводу PL/sql и T/sql, плюсы и минусы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 16:38 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
В T-SQL нет иерархических запросов, в PL-SQL нельзя процедурой вернуть набор данных Если я ошибаюсь, поправьте меня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 16:52 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
ну T-SQL от mssql2k5 это немного кастрированый PL/SQL oracle7 (1992 год) В оракле было отслеживание зависимостей, это когда объекты субд (procedure/function/package/view) имеют стаус valid/invalid и субд отслеживает зависимости между ними. Например удаление таблицы повлечет за собой изменение статуса на «invalid» всех объектов, котрые были связаны с этой таблицой. Это позволяет предотвращать запуск процедур которые выполнятся с ошибкой. Mssql проверяет лишь синтаксис и только во время компиляции, поэтому такая процедура будет запущена и будет работать пока не встетится ошибочная команда, результат такой работы может быть непредсказуем. - В T-SQL нет масивов - Отсутствуют ООП фичи (object oriented features) - Нет аналогов встроеных процедур/пакетов (DBMS_*, UTL_*, и т.п.) - Нет аналога пакетам - T-SQL mssql2005 по прежнему имеет ограничение на глубину рекурсии (32 вызова) - В mssql2005 нет before, on connect тригеров, отсутствует отложеная проверка. а вообще сравнивать нада комплексно, включая SQL, поведения временых таблиц и почее ... типа так :) http://oraclemind.blogspot.com/2006/03/oracle-10g-vs-microsoft-sql-server_26.html Sim.OnВ T-SQL нет иерархических запросов, в PL-SQL нельзя процедурой вернуть набор данных Если я ошибаюсь, поправьте меня это SQL и вроде в msql2k5 появилось выражение WITH ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 16:56 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
2ё чел сравнить просил а не эту шелуху Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 17:17 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Sim.Onв PL-SQL нельзя процедурой вернуть набор данных Если я ошибаюсь, поправьте меня Есть в Оракле pipelined function, которая возвращает набор данных, а можно и и классически - через REF CURSOR (указатель на recordset) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 18:28 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
2 Yo.!! Это вы хорошо набросили :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2006, 19:09 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
В хранимках Oracle максимальная вложенность запроса - 3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 00:52 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
3JIA9I с**аВ хранимках Oracle максимальная вложенность запроса - 3 *зееевать эт в каком оракле ;)? select * from v$version в студию и вообще, чево, execute immediate отменили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 09:27 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
3JIA9I с**аВ хранимках Oracle максимальная вложенность запроса - 3 ну разве что если руки растут из жопы и не дотягиваются до 4-й вложености :) aZm и вообще, чево, execute immediate отменили? и что через execute immediate запрос будет другой движек обрабатовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 09:54 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!и что через execute immediate запрос будет другой движек обрабатовать ? А вы что никогда не сталкивались что некоторые конструкции, лекго проглатываемые в коммандном SQL-е, не хотят компилироваться в PL/SQL-е? В 8.1.5 помню нельзя было использовать ORDER BY в подзапросах. Во всей линии восьмерки аналитические функции не пашут в PL/SQL. Вообще, конечно PL/SQL вещь неплохая, но огрех, мешающих жить сухо и комфортно - море. Что для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор. Хреновы индусы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 11:45 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
2Longsvano неверю. ( но у меня нет восьмерки проверить.) pl/sql всего лишь вызывает движек SQL и все (см рисунок), да в восьмерке помнится были проблемы с несовместимостью некоторых типов, типа в SQL тип сделали, а в pl/sql еще нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:09 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
хм .. гугл говорит точно аналитические не пащут в восьмерке, получается что plsql пытается проверить синтаксис сам и если ему про аналитические функции не сказали, то он не компилит процедуру. выход спрятать синтаксис во view или через execute immediate, тогда действительно можно миновать проверку синтаксиса plsql движком. всеравно сумневаюсь я, что в восьмерке и 4-ная вложеность не работала ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:33 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!неверю. "- Все ставки сделаны, поэтому денег в кассе быть не может. - НЕ ВЕРЮ! - А я тебя ни х..я и не убеждаю. ЭТО ФАКТ." (с) Snatch, Сп..и в переводе Гоблина. Йо, ну это же несерьезно. Мы же с вами не на теологическом форуме, жонглировать схемами из доков не собираемся. Мы же технари и инженеры, поэтому практика для нас - единственный критерий истины. Мало ли чего написал тех.писатель со слов пьяного индуса-разработчика. Поставьте воcьмерку и убедитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:34 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторгугл говорит точно аналитические не пащут в восьмерке Опоздал я со своим постом, вы сами уже нашли ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:36 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
2 Yo именно. экзекут иммедиэйт дернет скл-энжин. иначе -будет использован плскл энжин. а они - разные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:42 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
что в восьмерке и 4-ная вложеность не работала ... А это это такое вообще вложенность? Имеется ввиду что такое работать не будет: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. "Сумневаюсь я"(c) И.В.Ломоносов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:43 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
ну да типа такого: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:47 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano Мало ли чего написал тех.писатель со слов пьяного индуса-разработчика. Поставьте воcьмерку и убедитесь. ссссцуко! ненада про пьяных индусов, а? и так есть дикое желание разбомбить бангалор наккуй как рассадник клинических дебилов :( зы.кто не верит - пообщайтесь с оракловыми приблудами на джаве :( поубивалбынах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:49 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!ну да типа такого: Код: 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. версия? 8.0.х, 8.1.x,9.2.x? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:50 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!ну да типа такого: Кстати, этот пример может быть вовсе непоказательный. Посмотрите план этого запроса. Оптимизатор спокойно прочухивает, что вложенность для запроса роли не играет. То есть View внутренний (как он там правильно называется не помню) на образуется. А вот если таких вьюшек будет 4 - то фиг знает. Может товарищ и прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 12:54 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
aZm версия? 8.0.х, 8.1.x,9.2.x? у меня меньше 10.1 неосталось баз. Longsvano Кстати, этот пример может быть вовсе непоказательный. Посмотрите план этого запроса. Оптимизатор спокойно прочухивает, что вложенность для запроса роли не играет. То есть View внутренний (как он там правильно называется не помню) на образуется. А вот если таких вьюшек будет 4 - то фиг знает. Может товарищ и прав. пля, повторяю plsql не исполняет sql, он только проверяет синтаксис во время компиляции. причем судя по гуглу если процедуру оформить как анонимный блок то аналитеческие запросы в восьмерке пройдут на ура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 13:05 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
хотя нет, не через анонимный, а просто SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 13:07 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторпля, повторяю plsql не исполняет sql, он только проверяет синтаксис во время компиляции И что с того? Пусть это баг SQL Statement Executor-а с вашей схемы. Раз PL/SQL вызывает SQL Statement Executor, то и наследует все его ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 13:12 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano И что с того? Пусть это баг SQL Statement Executor-а с вашей схемы. Раз PL/SQL вызывает SQL Statement Executor, то и наследует все его ошибки. непонял о чем спор, если это ограничение sql движка то оно не будет работать ни через view ни через sqlplus, если же оптимизатор прочухивает - то проблема лишь как обойти проверку синтасиса plsql (если вдруг plsql не знает про такой синтаксис). а вообще последние проблемы такого рода как я понимаю были в 8рке, т.е. 10 лет назад, чего тормашить субд которая уже отжила свое и несупортится ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 13:29 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo не нуна быть таким категоричным :) буквально полгода назад я наблюдал не самый слабый продакшн да 8.1.7.3 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 13:34 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!ну да типа такого: Код: 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. не понял - работает это.. у меня Oracle enterprise edition release 8.0.5.0.0. production ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 14:12 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
итого: опытным путем доказано, что мембр 3JIA9I с**а пастернака нечетал, но асуждает ;) --- No Pity. No Mercy. No Regret. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2006, 15:32 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!! aZm версия? 8.0.х, 8.1.x,9.2.x? у меня меньше 10.1 неосталось баз. Longsvano Кстати, этот пример может быть вовсе непоказательный. Посмотрите план этого запроса. Оптимизатор спокойно прочухивает, что вложенность для запроса роли не играет. То есть View внутренний (как он там правильно называется не помню) на образуется. А вот если таких вьюшек будет 4 - то фиг знает. Может товарищ и прав. пля, повторяю plsql не исполняет sql, он только проверяет синтаксис во время компиляции. причем судя по гуглу если процедуру оформить как анонимный блок то аналитеческие запросы в восьмерке пройдут на ура. PL/SQL движок отправляет запросы на SQL машину без своего собственного парсера только с 9.0. Впрочем, и на 9.2 можно спокойно закинуть в pl/sql запрос с оконными функциями и получить ошибку парсера. Так что, декларации декларациями, а в реале немного по-другому... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2006, 12:57 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
К моему предыдущему посту. На 10 парсер plsql и sql, действительно, общий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2006, 13:09 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Sorry за еще одно письмо. Правка, к сожалению, запрещена... На последнем патче не 9 все тоже нормально работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2006, 13:12 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
AISorry за еще одно письмо. Правка, к сожалению, запрещена... На последнем патче не 9 все тоже нормально работает. в смысле на последней 8рке ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2006, 13:15 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!! AISorry за еще одно письмо. Правка, к сожалению, запрещена... На последнем патче не 9 все тоже нормально работает. в смысле на последней 8рке ? Просто по клавише промазал. На последнем патче на 9 (9.2.0.7 - на 9.2.0.1 не все работает гладко). В 8 для pl/sql и sql разные парсеры sql-команд во всех версиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2006, 19:41 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Проверял на 9.2 (кажется) - не давал даже создать такую процедуру. aZmопытным путем доказано, что мембр 3JIA9I с**а пастернака нечетал, но асуждает ;) Уважаемый, идите лесом. Пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 00:24 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
3JIA9I с**аПроверял на 9.2 (кажется) - не давал даже создать такую процедуру. aZmопытным путем доказано, что мембр 3JIA9I с**а пастернака нечетал, но асуждает ;) Уважаемый, идите лесом. Пожалуйста. ниа. нифига не пойду. версию покажите. полную. в плюсе: Код: plaintext 1. 2. и потом - тестовый пример, подтверждающий ваши слова, в студию :) зы. хотя если это 1й релиз 9.2. меня ничего не удивит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 12:04 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
AIК моему предыдущему посту. На 10 парсер plsql и sql, действительно, общий. кажется все же нет /topic/180264#1506611 и ниже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 12:35 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production PL/SQL Release 9.2.0.1.0 - Production CORE 9.2.0.1.0 Production TNS for 32-bit Windows: Version 9.2.0.1.0 - Production NLSRTL Version 9.2.0.1.0 - Production ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 17:06 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoА вы что никогда не сталкивались что некоторые конструкции, лекго проглатываемые в коммандном SQL-е, не хотят компилироваться в PL/SQL-е? В восьмерке было такое. С тех пор стало заметно лучше. LongsvanoВообще, конечно PL/SQL вещь неплохая, но огрех, мешающих жить сухо и комфортно - море. Безусловно. Но выполнив проект на SQL2000, я стал больше ценить сухость и комфортность PL/SQL :) LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор. Хреновы индусы! А индусы-то тут при чем? Полагаю, это тяжкое наследие 70-х годов, и нам еще надо радоваться, что 30 символов, а не 8 или 16 :)) Конечно, хотелось бы от этого уйти. Но боюсь, у Oracle не осталось человека, готового дать зуб за "если мы увеличим максимальную длину, то найдем все места, где из-за этого что-то может сломаться". Правда, с тех же давних годов известно решение этой проблемы - потребовать, чтобы имена были любой длины, но различались по первым N символам (и соответственно - оставить везде где сейчас есть по 30 символов, заведя дополнительное поле/таблицу для "длинных имен"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 00:15 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор А ты попробуй ручками программировать, а не мышкой в гуях водить. Как напишешь раз двадцать имя своей таблицы, сразу поймёшь, что к чему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 01:58 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
3JIA9I с**аOracle9i Enterprise Edition Release 9.2.0.1.0 - Production PL/SQL Release 9.2.0.1.0 - Production CORE 9.2.0.1.0 Production TNS for 32-bit Windows: Version 9.2.0.1.0 - Production NLSRTL Version 9.2.0.1.0 - Production уууу ) в 1м релизе версии может быть что угодно) бага, которую пофиксили, имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 09:49 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Anton Demidov LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор А ты попробуй ручками программировать, а не мышкой в гуях водить. Как напишешь раз двадцать имя своей таблицы, сразу поймёшь, что к чему. Сер телепат, сер видит в чем я работаю и какой интрументарий использую? Может сер скажет мне, почему практически в никаких языках таких ограничений не существует? Может сер также вспомнит, почему все файловые системы выросли из узких штанишек коротких имен фйлов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 11:11 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
с**а да заливает :) Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 12:00 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор к стате а нафига больше то ? это же не mssql где все процедуры свалены в одну кучу и длинные имена нужны чтоб в этой куче ориентироватся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 12:15 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!! LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор к стате а нафига больше то ? это же не mssql где все процедуры свалены в одну кучу и длинные имена нужны чтоб в этой куче ориентироватся. Во первых, ответьте себе, почему в языках с областями видимости таких ограничений нет. Во вторых. В оракле тоже все свалено в одну кучу в пределах схемы. Или вы предпочитаете логически связанные таблицы держать в одной схеме, другие в другой? Лично меня такой гиморой не устраивает. В третьих. Дело предпочтения и привычек. Любит человек длинные читаемые индентификаторы - слава богу. Но зачем ломать голову (из за мудацкого необоснованного ограничения базы) как бы уместить имя в 30 символов чтобы оно осталось читаемым? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 12:26 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoСер телепат, сер видит в чем я работаю и какой интрументарий использую? Да ты шо? vi? emacs? Longsvano Может сер скажет мне, почему практически в никаких языках таких ограничений не существует? Во всех? ANSI СAlthough ANSI allows 6 significant characters in external identifier names and 31 for names of internal (within a function) identifiers Longsvano Может сер также вспомнит, почему все файловые системы выросли из узких штанишек коротких имен фйлов? Это ты про недоОСь DOS с ее недофайловой системой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 12:29 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoВ третьих. Дело предпочтения и привычек. Любит человек длинные читаемые индентификаторы - слава богу. Но зачем ломать голову (из за мудацкого необоснованного ограничения базы) как бы уместить имя в 30 символов чтобы оно осталось читаемым? Ох...енно нечитаемое название из 30 символов необоснованногоограничениябазы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 12:33 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
2Longsvano не ну если у тебя какие-то психологические проблемы по использованию стандартных фич оракла то не стоит обижатся. большинству нормальных людей индификатора schema.package.procedure как-то хватает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 12:35 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
-- LongsvanoВ третьих. Дело предпочтения и привычек. Любит человек длинные читаемые индентификаторы - слава богу. Но зачем ломать голову (из за мудацкого необоснованного ограничения базы) как бы уместить имя в 30 символов чтобы оно осталось читаемым? Ох...енно нечитаемое название из 30 символов необоснованногоограничениябазы Snatch - Эй,Тайрон, припаркуйся вон там! - Там слишком мало места... - Таааам слишком мало места???!!! Да туда, бл*, боинг посадить можно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 12:45 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
автор Во всех? ANSI СAlthough ANSI allows 6 significant characters in external identifier names and 31 for names of internal (within a function) identifiers Тогда вопросы: 1) Чем было вызвано такое ограничение. 2) Фраза начинается с "несмотря на то, что...". Окончание цитаты привидите пожалуйста. Посмею предположить, что там будет чтото вроде того: "стандарт допускает сертифицировать компиляторы, обрабатывающие и более длинными идентификаторами". Сейчас попробовал длинный индентфикатор на MS Visual C++ 6.0. Скушал и не подавился. Было предположение, что компилятор реально различает первые сколько-то символов, однако нет - добывив буковку в конце получил результат от разных длинных идентификаторов. С вашего позволения могу протестировать и с GCC на РедХат Линукс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 12:47 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
автор- Таааам слишком мало места???!!! Да туда, бл*, боинг посадить можно! Господин Гоблин, спасибо вам за хороший перевод отличного фильма. Вы привели хороший пример. Если комуто 30 символов за глаза хватает - я только могу порадоваться за них. Но вот мне, ни х..я не хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 12:51 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano 1) Чем было вызвано такое ограничение. Да чем,чем... Тем что когда-то под эту струкртуру отвели 30 байт... Longsvano 2) Фраза начинается с "несмотря на то, что...". Окончание цитаты привидите пожалуйста. Посмею предположить, что там будет чтото вроде того: "стандарт допускает сертифицировать компиляторы, обрабатывающие и более длинными идентификаторами". Сейчас попробовал длинный индентфикатор на MS Visual C++ 6.0. Скушал и не подавился. Было предположение, что компилятор реально различает первые сколько-то символов, однако нет - добывив буковку в конце получил результат от разных длинных идентификаторов. С вашего позволения могу протестировать и с GCC на РедХат Линукс. Все правильно, у него это ограничение 2048 символов:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 13:03 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторДа чем,чем... Тем что когда-то под эту струкртуру отвели 30 байт... Хмм, оказывается еще и байт. Господа, въезжающие в тему как оракл работает с юникодом. Означат ли ограниение в 30 байт на идентификатор, что если мы его будем обзывать в национальной кодировке, длина его уменьшится до 15 символов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 13:18 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
да уменьшится, но за индификаторы на русском нада однозначно отрывать яйца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 13:29 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano Хмм, оказывается еще и байт. Господа, въезжающие в тему как оракл работает с юникодом. Означат ли ограниение в 30 байт на идентификатор, что если мы его будем обзывать в национальной кодировке, длина его уменьшится до 15 символов? Да. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 13:35 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!да уменьшится, но за индификаторы на русском нада однозначно отрывать яйца. А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего. Йо, это же всего лишь вопрос договоренности между разработчиками (и админом) - как называть идентификаторы - нравятся русские, слава богу, оракл вовсю им этому поспособствует. Или же вы готовы привести ссылку на доки, где оракл мол "стронгли рекоммендед" не использовать неанглийские идентификаторы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 13:47 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
у меня на одной из баз макс. длина идентификатора - 70 символов (русское наименование CK, отображающее смысл ограничениения. также достаточно длинные имена FK - мнемонические. длинные имена у ХП, сгенерированных фреймвёрком - тоже мнемонические (префиксы+суффиксы+постфиксы+разные там фиксы/типы). у тех проц, которые пишу ручками названия обычно не слишком длинные, но всё-таки бывает... doc03070201__0201_ClearCustomDutyDiff_act - вполне понятное в рамках нашей системы наименование процедуры, отображающее тип документа (03070201), тип спецификации (0201), действие (ClearCustomDutyDiff) и собственно, поддействие (act). 41 букова. никто не умер, аднака. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 13:56 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
lockyу меня на одной из баз макс. длина идентификатора - 70 символов У вас MSSQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 14:02 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
locky у тех проц, которые пишу ручками названия обычно не слишком длинные, но всё-таки бывает... doc03070201__0201_ClearCustomDutyDiff_act - вполне понятное в рамках нашей системы наименование процедуры, отображающее тип документа (03070201), тип спецификации (0201), действие (ClearCustomDutyDiff) и собственно, поддействие (act). 41 букова. никто не умер, аднака. все правильно, другого выхода в mssql нет, поскольку нормального неймспейса в mssql нет вам приходится страдать такой ерундой. в оракле вы бы сделали пакет doc03070201, в который бы объединили все действия с этим типом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 14:08 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoЙо, это же всего лишь вопрос договоренности между разработчиками (и админом) - как называть идентификаторы [src oracle] Connected to Oracle9i Enterprise Edition Release 9.2.0.6.0 Connected as test SQL> create table laud (x char(1) default 'X'); Table created SQL> select * from lаud; ORA-00942: table or view does not exist[/quot] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 14:11 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
lockyу меня на одной из баз макс. длина идентификатора - 70 символов Основной минус ограничения на длину идентификатора - оно мешает вводить конвенции именования объектов в БД. Скажем, если мы говорим, что для таблицы XXX поле ПК должно называться XXX_ID, а индекс - XXX_PK_I, максимально допустимая длина съезжает до 25 символов. Если мы говорим, что развязка многие-ко-многим между А и Б должна называться LINK_A_B - допустимая длина оказывается ограниченной двенадцатью (!) символами. И т. д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 14:18 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего. вот если бы им оторвали бы яйца еще на том этапе то небыло бы насвете этой уе****ой файл-серверной поделки которой нужет citrix чтоб хоть как-то шевелится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:15 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!! Longsvano А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего. вот если бы им оторвали бы яйца еще на том этапе то небыло бы насвете этой уе****ой файл-серверной поделки которой нужет citrix чтоб хоть как-то шевелится. Долой МТС из 1С! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:28 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarer lockyу меня на одной из баз макс. длина идентификатора - 70 символов Основной минус ограничения на длину идентификатора - оно мешает вводить конвенции именования объектов в БД. Вот! Господин Софтварер самую суть ухватил. Ограничение на длину имен не позволет ЕДИНООБРАЗНО именовать объекты. До есть подспудно заставляет плодить зоопарк, а это уже однозначное зло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:36 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!! Longsvano А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего. вот если бы им оторвали бы яйца еще на том этапе то небыло бы насвете этой уе****ой файл-серверной поделки которой нужет citrix чтоб хоть как-то шевелится. Йо, если 1С - говно, то это никак не доказывает что определние имен на русском языке также плохо. Вот скажите пожалуйста, почему вам не нравится именование объектов по русски? Только давайте РАЦИОНАЛЬНЫЕ и ОБЪЕКТИВНЫЕ ответы. Ответы, которые можно подвети под "религия запрещает" и ваши личные предпочтения и привычки не принимаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:41 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoВот скажите пожалуйста, почему вам не нравится именование объектов по русски? Только давайте РАЦИОНАЛЬНЫЕ и ОБЪЕКТИВНЫЕ ответы. Ответы, которые можно подвети под "религия запрещает" и ваши личные предпочтения и привычки не принимаются. На самом деле, англоговорящие (к примеру) программеры дают имена переменным/объектам на том языке, на котором говорят и думают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:55 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoВот скажите пожалуйста, почему вам не нравится именование объектов по русски? Технически возможность русских идентификаторов мне очень не нравится из-за вышеприведенного примера с table does not exists. Практически на тех серверах, на которых я работаю, рано или поздно появляется триггер, запрещающий использование русских букв в именах объектов. Именование объектов по-русски мне не нравится по двум причинам. Во-первых: если уж корежить язык и издеваться над ним, то я предпочитаю, чтобы это был чужой язык. Здесь также стоит упомянуть, что морфология русского языка, достаточно богатая логика словоформ делают его особенно уязвимой мишенью; если "select from table" - нормальная фраза с точки зрения грамматики английского, то "выбрать из таблица" звучит не то чтобы идеально по-русски. Во-вторых: мое чувство стиля говорит, что Код: plaintext - нормально, легко читается, в то время как Код: plaintext - неоднородное уродство. Отсюда вывод: тогда и ключевые слова, и стандартные функции, и вообще все должно иметь альтернативный русский синтаксис. А такая идея может прийти в голову только больному на эту голову человеку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 15:55 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano Йо, если 1С - говно, то это никак не доказывает что определние имен на русском языке также плохо. доказывает. если человек не может по английски элементарно назвать табличку это значит, что документацию он точно ниосилил, т.е. это 100% ламо. Longsvano Вот скажите пожалуйста, почему вам не нравится именование объектов по русски? Только давайте РАЦИОНАЛЬНЫЕ и ОБЪЕКТИВНЫЕ ответы. Ответы, которые можно подвети под "религия запрещает" и ваши личные предпочтения и привычки не принимаются. см. предыдущее объяснение, ну а рационально сходу вот: http://www.sql.ru/forum/actualthread.aspx?tid=265178&pg=1#2383475 http://www.sql.ru/forum/actualthread.aspx?tid=97523&pg=1#718626 http://www.sql.ru/forum/actualthread.aspx?tid=14984#70670 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:00 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!! Longsvano Йо, если 1С - говно, то это никак не доказывает что определние имен на русском языке также плохо. доказывает. если человек не может по английски элементарно назвать табличку это значит, что документацию он точно ниосилил, т.е. это 100% ламо. Вообщето для 1с - стандарт де-факто писать русскими идентификаторами. Вся стандартная конфа написана на русском. Longsvano http://www.sql.ru/forum/actualthread.aspx?tid=265178&pg=1#2383475 http://www.sql.ru/forum/actualthread.aspx?tid=97523&pg=1#718626 http://www.sql.ru/forum/actualthread.aspx?tid=14984#70670 Фигня это а не рациональные доводы. Сводящаяся к тому, что такаято-такая программа криво работает с русским. Учитесь правильным ответам у Софтварера. Кстате еще довод за английский - если не ошибаюсь аглийский несколько (процентов на 20-30) короче русского. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:09 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano Yo.!! Longsvano А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего. вот если бы им оторвали бы яйца еще на том этапе то небыло бы насвете этой уе****ой файл-серверной поделки которой нужет citrix чтоб хоть как-то шевелится. Йо, если 1С - говно, то это никак не доказывает что определние имен на русском языке также плохо. Вот скажите пожалуйста, почему вам не нравится именование объектов по русски? Только давайте РАЦИОНАЛЬНЫЕ и ОБЪЕКТИВНЫЕ ответы. Ответы, которые можно подвети под "религия запрещает" и ваши личные предпочтения и привычки не принимаются. Для меня единственный агрумент против названий таблиц и процедур по-русски - необходимость постоянно переключать раскладку клавиатуры. Но для других объектов, которых не надо явно использовать в коде - это вполне имеет право на жизнь. Например названия индексов, триггеров, констрейнов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:11 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
[quoе]индексов, триггеров, констрейнов[/quot] Индексы и констраинты лихко могут использоваться в коде. Индексы - в хинтах, имена констрейнов - при обработке исключений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:26 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano Фигня это а не рациональные доводы. Сводящаяся к тому, что такаято-такая программа криво работает с русским. Учитесь правильным ответам у Софтварера. т.е. то что программы небходимые професионалу для работы с субд (типа sourcesafe, erwin и пр.) это фигня, ну что ж, сами себе буратино. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 16:35 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
У оракла где-то было самое простое объяснение, почему не рекомендуется использовать нелатинские символы в названиях идентификаторов. Oracle не гарантирует, что с такими идентификаторами будут работать клиентские приложения третьих фирм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2006, 20:55 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!! Longsvano Фигня это а не рациональные доводы. Сводящаяся к тому, что такаято-такая программа криво работает с русским. Учитесь правильным ответам у Софтварера. т.е. то что программы небходимые професионалу для работы с субд (типа sourcesafe, erwin и пр.) это фигня, ну что ж, сами себе буратино. Впервые слышу о том, что ErWin, а уж тем более SourceSafe - не работают (криво работают) с юникодом вааще и русской кодировкой в частности. Почему-то все остальные (базы данных) работают с русскими идентификаторами на ура. В том числе и в паре с упомянутыми ЭрВинами и СорсСейфами. Если Оракал такой убогий, что ниасилил русские буквы - ну так надо это признать, правда ведь, Йо? Или гордость не позволяет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 02:09 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
кстати, ограничением в 30 с чем-то символов страдает не только Оракл, но и некоторые ЯП, например тот же PHP (при выборке из массива результата запроса), причем никаких сообщений об ошибке не выводится, просто нет значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 08:41 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Пьяный Лох Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 10:09 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Пьяный Лох пока могу признать, что лошок невьехал о чем взрослые говорят, ну и то что к сожелению оракл работает с уникодными символами в именах, что и создает проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 10:42 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Apex Пьяный Лох Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось. Вы когда-нибудь видели базы данных, в которых ВСЕ названия объектов написаны по русски и практически без сокращений??? Вы, судя по всему, даже не представляете, как в таком случае упрощается разработка и сопровождение системы... Соболезную ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 10:52 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
> у меня на одной из баз макс. длина идентификатора - 70 символов > > У вас MSSQL? да > все правильно, другого выхода в mssql нет, поскольку нормального > неймспейса в mssql нет вам приходится страдать такой ерундой. в оракле > вы бы сделали пакет doc03070201, в который бы объединили все действия > этим типом. честно говоря, достаточно смутно представляю себе, что такое неймспейс. предполагаю - некая штука, позволяющая разбивать процедуры и проч. вроде как по модулям? в этом случае вызов процы был бы нечто вроде [doc03070201].[s0201_ClearCustomDutyDiff_act]? хотя бывают процы, которые работают одновременно с двумя типами документов, или для нескольких типов - их кидать в [общий] неймспейс? > Основной минус ограничения на длину идентификатора - оно мешает >вводить > конвенции именования объектов в БД. Скажем, если мы говорим, что для > таблицы XXX поле ПК должно называться XXX_ID, а индекс - XXX_PK_I, > максимально допустимая длина съезжает до 25 символов. Если мы говорим, > что развязка многие-ко-многим между А и Б должна называться LINK_A_B - > допустимая длина оказывается ограниченной двенадцатью (!) символами. И > т. д. вот такое имя FK позволяет сразу понять - что и куда, независимо от того, придерживались разработчики "сухаревской конвенции", или не придерживались (хотя скобки и запятие в именах мне не очень нравятся). FK_EORule_(SpecifType,FieldName)_StorageValue_(StorageLine,Name) -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 10:54 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Пьяный Лох Если Оракал такой убогий, что ниасилил русские буквы - ну так надо это признать, правда ведь, Йо? Или гордость не позволяет? Прескорбно то, что залетевший сюда случайно ПЛ теперь будет утверждать, что Oracle не умеет работать с русскими буквами. А все просто, чтобы именовать таблицу и /или колонку "русским именем" её нужно заключить в '', чтобы обратиться к ней, надо проделать тоже самое... Разработчики практически всегда об этом забывают... И меня кайне раздражает, что я должен писать в запросах, испавляя их ошибки, как всегда в аварийном порядке select .. from "вася пупкин", ну чем я виноват. Если хотите раскрыть суть объекта, используйте comment, все наглядно и просто... Возвращаясь к основной теме. Сравнивать TL/SQL и PL/SQL не кореектно, никто не сравнивает basic и c++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 11:01 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
locky честно говоря, достаточно смутно представляю себе, что такое неймспейс. предполагаю - некая штука, позволяющая разбивать процедуры и проч. вроде как по модулям? в этом случае вызов процы был бы нечто вроде [doc03070201].[s0201_ClearCustomDutyDiff_act]? хотя бывают процы, которые работают одновременно с двумя типами документов, или для нескольких типов - их кидать в [общий] неймспейс? Что такое библиотека, например dll Вы представляете? Ну это тоже самое. Разве для того, чтобы обратиться к разным файлам надо писать разные библиотеки? Ребята, ну не спорте, не знаете Oracle, лучше не позорьтесь... locky вот такое имя FK позволяет сразу понять - что и куда, независимо от того, придерживались разработчики "сухаревской конвенции", или не придерживались (хотя скобки и запятие в именах мне не очень нравятся). FK_EORule_(SpecifType,FieldName)_StorageValue_(StorageLine,Name) Вообще-то для того, чтобы определить кто куда ссылается, существует словать данных... И вылавливать по именам зависимости - не просто не верно, просто преступно, забыли переименовать, да мало ли что... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 11:06 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторРебята, ну не спорте, не знаете Oracle, лучше не позорьтесь... Ну так объясните незнающим людям как организовать эти самые неймспэйсы в оракле кроме как городить лишние схемы? Лично я с удовольствием вас послушаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 11:17 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano авторРебята, ну не спорте, не знаете Oracle, лучше не позорьтесь... Ну так объясните незнающим людям как организовать эти самые неймспэйсы в оракле кроме как городить лишние схемы? Лично я с удовольствием вас послушаю. Именно схемы, если речь идет об объектах базы данных, таких как таблицы, индексы, констрейнты. Посмотрите как это делает сам Oracle: схема SYS - одни объекты, схема SYSTEM - другие объекты, схема OUTLN - третьи. Разный физический смысл - разные служебные схемы. Если речь идет о процедурах, функциях, типах - для этого существуют пакеты (как модули в Паскале). У пакета есть интефейс (package spec) и реализация (package body), поддерживается перегрузка подпрограмм в пакете, инициализация пакета, сокрытие реализации (что-то типа protected method). По сути все что нужно, для поддержки парадигмы модульного программирования. Для эстэтов есть объекты с наследованием и прочими прелестями... Встерчный вопрос: а сколько у вас таблиц в одной схеме, раз вы уперлись в ограничение на длину имени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 12:14 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
andy st Apex Пьяный Лох Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось. Вы когда-нибудь видели базы данных, в которых ВСЕ названия объектов написаны по русски и практически без сокращений??? Вы, судя по всему, даже не представляете, как в таком случае упрощается разработка и сопровождение системы... Соболезную Не видел и видеть не хочу. Сопровождение облегчает грамотная декомпозиция системы, четкая модульная реализация, грамотно написаный код. А не название объектов в кириллической кодировке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 12:24 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
автортипах - для этого существуют пакеты Здорово. Вот и объявите мне объектный тип в пакете. авторподдерживается перегрузка подпрограмм в пакете Ага. Классная перегрузка. Только такое перегрузить не может почемуто: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. авторВстерчный вопрос: а сколько у вас таблиц в одной схеме, раз вы уперлись в ограничение на длину имени? Да разница то? Вам показали где-то выше наглядный пример, что ограничение на длину имен не дает единообразно именовать объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 12:30 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Apex Не видел и видеть не хочу. в этом и проблема.... ) походу уже в генах.... что-то на уровне мутации... ;-Р Apex Сопровождение облегчает грамотная декомпозиция системы, четкая модульная реализация, грамотно написаный код. А не название объектов в кириллической кодировке. А кто спорит по поводу декомпозиции, модульности и грамотности кода?? Просто в случает именования объектов по русски и с минимумом сокращений поиск нужных объектов (особенно когда их в системе десятки тысяч) самую малость упрощается хотя бы только тем, что не надо копаться в справочниках, описывающих сокращения и условные обозначения. Мне, например, уже довольно сложно придумать сокращение, чтобы как-то назвать отчет "Выполнение производственной программы в разразе участков и аггрегатов за выбранный интервал времени посуточно" . Точнее, придумывается... но как-то криво оно выглядит и вооще нечитабельно. И вооще становится нечитабельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 12:45 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
alexey_tm wrote: > честно говоря, достаточно смутно представляю себе, что такое неймспейс. > предполагаю - некая штука, позволяющая разбивать процедуры и проч. вроде > как по модулям? в этом случае вызов процы был бы нечто вроде > [doc03070201].[s0201_ClearCustomDutyDiff_act]? > хотя бывают процы, которые работают одновременно с двумя типами > документов, или для нескольких типов - их кидать в [общий] неймспейс? > > Что такое библиотека, например dll Вы представляете? Ну это тоже самое. > Разве для того, чтобы обратиться к разным файлам надо писать разные > библиотеки? > Ребята, ну не спорте, не знаете Oracle, лучше не позорьтесь... Тогда обясните мне. Ладно, побъем по неймспейсам (чтобы это ни было). один - относится к документы с типов 0301, другой - с типом 0302. В каждом из неймспесов есть проца Header_mod. каков формат вызова процедуры для типа 0301, 0302? в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod. > вот такое имя FK позволяет сразу понять - что и куда, независимо от > того, придерживались разработчики "сухаревской конвенции", или не > придерживались (хотя скобки и запятие в именах мне не очень нравятся). > FK_EORule_(SpecifType,FieldName)_StorageValue_(StorageLine,Name) > > Вообще-то для того, чтобы определить кто куда ссылается, существует > словать данных... > И вылавливать по именам зависимости - не просто не верно, просто > преступно, забыли переименовать, да мало ли что... у меня - не забудут, для этого есть соотв. скрипт, который занимается переименованием. А словарь данных... а-ха, очень удобно. при таком подходе действительно не нужны идентификаторы длиннее 30 символов. Обзовем таблицу T00000001, а по описанию в метаданных определим, что это у нас оказывается "Заголовок документа". Утрировано, но всё-таки. зы вы что, считаете, что я ручками такое имя FK вбил? не, автоматом переименовал. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 12:46 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
locky Тогда обясните мне. Ладно, побъем по неймспейсам (чтобы это ни было). один - относится к документы с типов 0301, другой - с типом 0302. В каждом из неймспесов есть проца Header_mod. каков формат вызова процедуры для типа 0301, 0302? в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod. чую вам пора почитать что-то где разжевано что такое программа подпрограмма и т.п. у вас явно должно быть: exec documents_api.header_mod(0301) ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:17 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano автортипах - для этого существуют пакеты Здорово. Вот и объявите мне объектный тип в пакете. Претензия не понятна. Объектные типы в пакетах обявлять нельзя, но обратного я и не утверждал. Longsvano авторподдерживается перегрузка подпрограмм в пакете Ага. Классная перегрузка. Только такое перегрузить не может почемуто: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Сначала сюда , потом вот сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:27 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!! wrote: > чую вам пора почитать что-то где разжевано что такое программа > подпрограмма и т.п. у вас явно должно быть: exec > documents_api.header_mod(0301) ; думаю, я это где-то уже читал (писал, юзал, применял - нужное подчеркнуть). но это - лирика. documents_api - это неймспейс? если да, то гуд. doc0301_header_mod и doc0302_Header_mod - имеют разный перечень входящих параметров, но - это тоже лирика, которую (возможно) оракал решает вполналета, пользуясь моим его (оракала) незнанием. просто вот хочу понять... в чем же эротическая разница между doc0301_header_mod и doc.0301_header_mod... неужели- в точке? -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:27 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!! locky Тогда обясните мне. Ладно, побъем по неймспейсам (чтобы это ни было). один - относится к документы с типов 0301, другой - с типом 0302. В каждом из неймспесов есть проца Header_mod. каков формат вызова процедуры для типа 0301, 0302? в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod. чую вам пора почитать что-то где разжевано что такое программа подпрограмма и т.п. у вас явно должно быть: exec documents_api.header_mod(0301) ; т.е. получается разница вся в том что вместо подчеркивания пишется точка? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:27 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!чую вам пора почитать что-то где разжевано что такое программа подпрограмма и т.п. у вас явно должно быть: exec documents_api.header_mod(0301) ; Да Вам не о том вроде. Есть таблицы Supplier, Addresses, SupplierAddresses В этом случае неплохо, когда FK именуются скажем как FK_Supplier_SupplierAddresses, FK_Addresses_SupplierAddresses ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:28 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
locky в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod. Это вы че, на каждый документ по процедуре создаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:31 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Apex locky в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod. Это вы че, на каждый документ по процедуре создаете? Ремарка в стороны: Между прочим PL/SQL не поддерживает шаблонного программирования (и слава богу, наверное, а ты индусы такое бы наворотили). Поэтому даже если функции делают что-то одинаковое но для разных типов - изволь городить кучу функций на каждый тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:34 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
SergSuper Yo.!! locky Тогда обясните мне. Ладно, побъем по неймспейсам (чтобы это ни было). один - относится к документы с типов 0301, другой - с типом 0302. В каждом из неймспесов есть проца Header_mod. каков формат вызова процедуры для типа 0301, 0302? в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod. чую вам пора почитать что-то где разжевано что такое программа подпрограмма и т.п. у вас явно должно быть: exec documents_api.header_mod(0301) ; т.е. получается разница вся в том что вместо подчеркивания пишется точка? :) Если для тебя разница между С и С++ только в том, что при обращении к методу класса ты пишешь точку, вместо подчеркивания - тогда да, только в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:36 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano Apex locky в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod. Это вы че, на каждый документ по процедуре создаете? Ремарка в стороны: Между прочим PL/SQL не поддерживает шаблонного программирования (и слава богу, наверное, а ты индусы такое бы наворотили). Поэтому даже если функции делают что-то одинаковое но для разных типов - изволь городить кучу функций на каждый тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:40 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторПретензия не понятна. Объектные типы в пакетах обявлять нельзя, но обратного я и не утверждал. Так и запишем: архитекторы оракла накосячили. Объект который явно можно определять на уровне пакета реализовали на уровне схемы. авторподдерживается перегрузка подпрограмм в пакете Запишем еще раз: перегрузка в PL/SQL - кастрированная. Чтобы ее подправить нужно приписывать префикс пакета или вставлять метки к анонимным блокам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 13:40 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
тут какой-то перец рассказывал о работе в турецкой фирме, он воевал с местными сотрудниками за именование таблиц и полей на нормальном английском языке а не на ихнем обезьяньем. 8) всегда лучше когда лучше. Имена по-русски это благо. Раньше этого не было т.к. трудно реализовать. Щас вроде все нормальные сервера поддерживают, кто не использует - руки не оттуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 14:12 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
1024 всегда лучше когда лучше. Имена по-русски это благо. Раньше этого не было т.к. трудно реализовать. Щас вроде все нормальные сервера поддерживают, кто не использует - руки не оттуда. Имена на русском не благо, а большой геморрой на заднице! Локальные поделки - это конечно хорошо, но когда с базой, разработанной такими вот умельцами (где именование идет на русском например), работают люди в любой другой, не русско-говорящей стране получается жопа! Кто-нибудь из Вас хоть раз задумывался об этом? Или как всегда, сперва сделаем, а потом будем думать и переделывать! Меня например бесит, когда приходится переключать раскладку клавиатуры несколько раз, чтобы написать простой запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 15:38 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
взял и всё по полочкам расставил. 8) абсолютное большинство баз это как раз "локальный поделки". А если уж у вас рокетсъенс то французу с их нетерпимостью англ.языка может быть влом читать анг.имена. Китаец может англ. совсем не знать. Обычно в таких случаях называют просто т1, т2, т3 и т.д. уважать надо себя а не эту бездушную железяку. Вы ещё файлам имена из восьми символов давайте, чтоп под досом можно было переписывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 15:46 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Пьяный ЛохВпервые слышу о том, что ErWin, а уж тем более SourceSafe - не работают (криво работают) с юникодом вааще и русской кодировкой в частности. SourceSafe я выкинул очень давно. ErWin-ом пришлось пользоваться подольше, и поэтому наблюдал его кривую работу с русскими буквами, причем вообще без всякой БД - только внутри себя, на уровне записал модель в файл - прочитал модель из файла. Точную версию не помню; если не ошибаюсь, major version - 4, build 381. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 15:56 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Часто вижу у себя на работе, как такие "локальные поделки" начинают использовать во многих странах. Уродливые названия, типа T1..TN тоже не многим лучше. Меня удивляет, люди не читают похоже ничего, ведь существует большое количество документов, описывающие стандартное именование объектов, тем самым облегчая жизнь всем, начиная от разработчика и заканчивая пользователем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 15:57 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
alexey_tmА все просто, чтобы именовать таблицу и /или колонку "русским именем" её нужно заключить в '', чтобы обратиться к ней, надо проделать тоже самое... Не нужно ее заключать в кавычки. Это добавит к глюкам русских букв еще и глюки неправильного регистра символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 15:59 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
alexey_tmВообще-то для того, чтобы определить кто куда ссылается, существует словать данных... То есть Вы предпочитаете получить исключение вида "constraint SYS_012345 violated" и отправиться в словарь данных смотреть, что это за constraint? Нет, спасибо. Лично мне "constraint FK_TABLE1_TABLE2" куда как удобнее. Время, знаете ли, стоит денег. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:02 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
2 Apex Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось. А я бы например кастрировал тех дибилов, которые английский ниасилили, но и по русски писать им религия не позволяет. В итоге пишут транслитом, да еще и с использованием абревиатур :). Получается скотоложество типа ScrPrDrID. Куй его знает что это такое, зато раскладку переключать не надо, и все типа крутые :). Вы когда-нибудь видели базы данных, в которых ВСЕ названия объектов написаны по русски и практически без сокращений??? Вы, судя по всему, даже не представляете, как в таком случае упрощается разработка и сопровождение системы... Соболезную Не видел и видеть не хочу. Давайте обсуждать вкус устриц с теми, кто их ел. Сопровождение облегчает грамотная декомпозиция системы, четкая модульная реализация, грамотно написаный код. А не название объектов в кириллической кодировке. Одно другому не мешает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:03 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarer SourceSafe я выкинул очень давно. ErWin-ом пришлось пользоваться подольше, и поэтому наблюдал его кривую работу с русскими буквами, причем вообще без всякой БД - только внутри себя, на уровне записал модель в файл - прочитал модель из файла. Точную версию не помню; если не ошибаюсь, major version - 4, build 381. ты с кем разговариваешь думаешь лох лабающий на access разрабатывает модель бд в erwin или отслеживает код !? ЗЫ. я представляю что обо мне подумаеют если я в оракловый супорт зашлю типа http://www.sql.ru/forum/actualthread.aspx?tid=184634&hl=%ec%e0%f2%fc+%f1%e8%ed%f2%e0%ea%f1%e8%f1#1548494этого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:05 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoАга. Классная перегрузка. Только такое перегрузить не может почемуто: Передергиваете. В приведенном Вами примере вообще нет перегрузки. Почему не видится верхняя функция? Видится. В своей области видимости. Хотя если не знать концепций... Попробуйте Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:05 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
2 alexey_tm Прескорбно то, что залетевший сюда случайно ПЛ теперь будет утверждать, что Oracle не умеет работать с русскими буквами. Так это ж не я утверждаю, это как раз таки ораклоиды глюки ловят с неанглийскими идентификаторами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:07 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarer wrote: > SourceSafe я выкинул очень давно. ErWin-ом пришлось пользоваться > подольше, и поэтому наблюдал его кривую работу с русскими буквами, > причем вообще без всякой БД - только внутри себя, на уровне записал > модель в файл - прочитал модель из файла. Точную версию не помню; если > не ошибаюсь, major version - 4, build 381. Версии 4.0 имхо глюкодром еще тот, даже без национальных символов:) Сейчас попробовал создать таблицу АБВГДЕЁЖЗИКЛМНО (АБВГДЕЁЖЗИКЛМНО varchar2(8)), втянуть ее в в ERwin 4.1.4 SP3 b4224 - проблем вроде нет. Удивляет выбор программ SourceSafe и ERwin как "небходимые професионалу для работы с субд". Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:08 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoЗапишем еще раз: перегрузка в PL/SQL - кастрированная. Запишем еще раз: некто Longsvano не знает, что есть перегрузка, однако употребляет это слово и строит на этой основе какие-то теории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:09 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!ты с кем разговариваешь думаешь Я думаю, что в общем случае не тебе определять, с кем и о чем мне разговаривать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:12 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarer Пьяный ЛохВпервые слышу о том, что ErWin, а уж тем более SourceSafe - не работают (криво работают) с юникодом вааще и русской кодировкой в частности. SourceSafe я выкинул очень давно. ErWin-ом пришлось пользоваться подольше, и поэтому наблюдал его кривую работу с русскими буквами, причем вообще без всякой БД - только внутри себя, на уровне записал модель в файл - прочитал модель из файла. Точную версию не помню; если не ошибаюсь, major version - 4, build 381. Я вот ErWin давно выкинул, по причине непроходимой его глючности. Но пока не выкинул - глюком именно с русскими буквачками не наблюдал. Что, разумеется, не значит, что их нет и быть не может (ну не видел я суслика...). SourceSafe тоже не лучший выбор (ну разве что для "профессианала" типа Йо), но и он на моей памяти не глючил с кодировками etc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:13 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторВидится. В своей области видимости. Хотя если не знать концепций... Попробуйте Софтварер, читайте сообщения внимательнее. Я выше писал, что этот косяк правиться добавлением метки к анонимному блоку. Мне будет достаточно вашего определия перегрузки и ресурса, откуда вы его возьмете. А потом посмотрим подходит ли мой пример под перегрузку или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:16 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Пьяный Лох2 Apex Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось. А я бы например кастрировал тех дибилов, которые английский ниасилили, но и по русски писать им религия не позволяет. В итоге пишут транслитом, да еще и с использованием абревиатур :). Получается скотоложество типа ScrPrDrID. Куй его знает что это такое, зато раскладку переключать не надо, и все типа крутые :). Обеими руками за! Пьяный Лох Вы когда-нибудь видели базы данных, в которых ВСЕ названия объектов написаны по русски и практически без сокращений??? Вы, судя по всему, даже не представляете, как в таком случае упрощается разработка и сопровождение системы... Соболезную Не видел и видеть не хочу. Давайте обсуждать вкус устриц с теми, кто их ел. Спорьте, я лишь сказал, что и без них отлично себя чувствую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:32 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторПолучается скотоложество типа ScrPrDrID Такое скотоложество получается в том числе и потому, что база заставляет сокращать человеческие имена. Разработчик был бы рад записать нормальное имя, ан нет - НЭ ЛЭЗЭТ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:36 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
2 Apex Спорьте, я лишь сказал, что и без них отлично себя чувствую Зачем спорить? Вы ж их не ели :) Как человек, участвовавший и в проектах с криво-английским naming convention, и в проектах русско-несокращенными схемами именований, могу лишь подтвердить высказывание andy st об упрощении разработки и сопровождения. Если, разумеется, используемый инструментарий (в том числе и СУБД) не взглючит ненароком (косой взгляд в сторону неназываемых СУБД). А что до "и без них отлично себя чувствую"... хммм... я, быть может, и с однобуквенными названиями таблиц буду себя отлично чувствовать. Это никому ни о чем не говорит. 2 Longsvano Такое скотоложество получается в том числе и потому, что база заставляет сокращать человеческие имена. Разработчик был бы рад записать нормальное имя, ан нет - НЭ ЛЭЗЭТ! Такое скотоложество получается в первую очередь потому, что разруха - она не в сортирах :) Ну и ограничение в 30 символов, конечно... С одной стороны, 30 знаков - достаточно много... если не увлекаться префиксно-суффиксными схемами... Хотя и без них получалось вылазить за 30 символов, легко и ненапряжно... С другой стороны, 15 юникодовых букаф - эт писец. Эт несерьезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:55 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoМне будет достаточно вашего определия перегрузки и ресурса, откуда вы его возьмете. А потом посмотрим подходит ли мой пример под перегрузку или нет. Боюсь, книги не очень подойдут как ресурс. Из того, что легко найти, в целом верное определение - http://www.cs.ucc.ie/~dgb/courses/swd/glossary.html#O В нем только нужно понять, что есть single scope (отождествление этого с "просто scope" будет неверным). Коротко: уже очень давно существует понятие области видимости идентификатора (display, scope). Сейчас в подавляющем большинстве случаев, область видимости идентификатора (и идентифицированного им объекта, соответственно) - часть блока, в котором объявлен этот идентификатор, после места объявления. Это и есть single scope из определения выше. Далее: в ЯП (впервые, по-моему, в Алголе, хотя могу ошибаться) потребовалась концепция взаимодействия display-ев, подключения одних в другие. То, что сейчас существует в виде вложенных блоков, использования внешних модулей и пакетов, наследования (видимость идентификаторов из предка), namespace-ов итп. Как только появилась эта потребность, появились и правила, определяющие приоритет видимости совпадающих идентификаторов из разных областей видимости. Во всех известных мне реализациях действует принцип - идентификатор, объявленный локально (в текущем блоке), скрывает идентификатор, подключаемый из внешнего блока. Наконец, что же есть перегрузка (overloading). Это фича объявления в одном display-е нескольких одноименных объектов, различимых по контексту использования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 16:58 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano авторВидится. В своей области видимости. Хотя если не знать концепций... Попробуйте Софтварер, читайте сообщения внимательнее. Я выше писал, что этот косяк правиться добавлением метки к анонимному блоку. Мне будет достаточно вашего определия перегрузки и ресурса, откуда вы его возьмете. А потом посмотрим подходит ли мой пример под перегрузку или нет.Извините за вмешательство но вопрос не в перегрузке, а алгоритме разрешения имен. см. http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14261/subprograms.htm#sthref1744 Оракл не лезет в вышестоящий скоуп если нашел имя в текущем, причем перекрытие локальными именами глобальных идет без учета сигнатуры. Что означает группу перегрузки способны образовывть лишь функции одного скоупа. Противоречит ли это понятию перегрузки - думаю нет. Слегка убого - да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 17:06 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
ModelRОракл не лезет в вышестоящий скоуп если нашел имя в текущем, Причем это правильный (необходимый) подход. Иначе возможен следующий вариант: из-за изменения кода в одном месте стал иначе работать код в другом месте. Скажем: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 17:20 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Apex wrote: > locky > > в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod. > > Это вы че, на каждый документ по процедуре создаете? ну... вообще-то больше. плюс еще пачку генерит фреймвёрк. а у Вас получается обойтись одной процедурой обработки для разнотипных документов? -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 17:29 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторПричем это правильный (необходимый) подход. Тут вам уже ответили. Вообще как это разрешение имен реализуется по-уму на низком уровне: Код: plaintext Вашей процедуре и ее набору аргументов присваивается некое хэш-имя, которое есть функция от типа(функ-я, процедура), имени, типов аргументов, их кол-ва и тд. Для машины procedure DoIt будет что-то типа того: PROC_FC086372CABC ну и тд. Для ваших DoIt этот хэш будет одинаковым (Здесь еще нужно как-то учесть DEFAULT параметры), так как varchar2 в number преобразуется автоматически - ваши два DoIt в представлении машины будут носить одинаковые имена. Но в моем примере эти хэши-названия функций должны быть разные, потому, что передается РАЗНОЕ кол-во аргументов. По-моему это недоработка или кривизна или косяк. О чем собственно я и говорил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 17:35 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
alexey_tm пишет: > Возвращаясь к основной теме. Сравнивать TL/SQL и PL/SQL не кореектно, > никто не сравнивает basic и c++. Почему это некорректно? У бейсика и с++ все-таки разные целевые аудитории и задачи, для которых они создавались, а TransactSQL и PL/SQL имеют более близкие цели - реализация логики на серверах баз данных. Так что сравнивать очень даже корректно. P.S. Может для разнообразия еще Watcom SQL добавим? :) Как он соотносится с TransactSQL обсуждать, правда, совсем не интересно, а вот сравнить с PL/SQL все же было бы любопытно. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 17:54 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoТут вам уже ответили. Да неужто? Между моим сообщением (когда явно "еще не ответили") и Вашим (когда вроде как "уже ответили") ровно одно письмо, при этом это ответ Apex-у от locky. Полагаете, я - виртуал Apex-а? LongsvanoВообще как это разрешение имен реализуется по-уму на низком уровне: Хм. Ну-ну. Комментировать сказанное Вами не хочется - там.. есть неудачные места, но главный вопрос в том, что Вы просто не поняли, о чем я говорю. LongsvanoПо-моему это недоработка или кривизна или косяк. О чем собственно я и говорил. Разумеется, Вы имеете право так считать. Сугубо технически любую концепцию можно назвать именно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 18:17 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторКомментировать сказанное Вами не хочется - там.. есть неудачные места, но главный вопрос в том, что Вы просто не поняли, о чем я говорю. Комментарии не требуется. Посмотрите какой asm код получается на выходе С++ компилятора для функций. Убедитесь. Принимать мои слова на веру я вас не заставляю. И я понял что вы говорите. Вы отстаиваете концепцию которую избрал Оракл. Я считаю что она убога и разрешить ее можно было одновременно как в вашу пользу, так и в мою, то есть так, чтобы работал и ваш пример и мой. Однако, зная как медленно развивается PL/SQL, что он до сих пор не может банально повторить концекции С 30-и летней давности или Perl-a 10-и летней давности, то остается только брюзжать. Однако, давайте пожмем друг другу руки. Спасибо за хороший тред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 18:35 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvano Поправлюсь. "Не поняли" - пожалуй, неверно, скорее "не оценили". Вы хотите некоторого определенного поведения (поиск максимально подходящего кандидата при минимальных усилиях программиста). Технически, разумеется, это легко реализуемо. Это поведение обладает определенным недостатком - возможностью легко сделать ошибку. Я привел простой пример, если привести чуть более сложный (функции определены в двух блоках, а используются в третьем), логика затмения не спасет от указанной мной проблемы скрытого изменения. Разумеется, предпочитаемая Вами концепция имеет право на жизнь. Но это совершенно не повод считать другую (и имхо - лучшую) кривой. Из вариантов "можно сделать А, защищен от Б" и "можно сделать А, нет защиты от Б" я почему-то предпочитаю первый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 18:40 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Longsvanoи разрешить ее можно было одновременно как в вашу пользу, так и в мою, то есть так, чтобы работал и ваш пример и мой. Нельзя. LongsvanoОднако, зная как медленно развивается PL/SQL, что он до сих пор не может банально повторить концекции С 30-и летней давности или Perl-a 10-и летней давности, то остается только брюзжать. PL/SQL в основном повторяет концепции ADA 25-летней давности. И совершенно не собирается повторять концепции одного опасного языка и одного плохого языка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 18:42 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторНельзя. Если есть время, можете накатать кусочек кода чтобы я это понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 18:47 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarerPL/SQL в основном повторяет концепции ADA 25-летней давности. И совершенно не собирается повторять концепции одного опасного языка и одного плохого языка. YES ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 09:23 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
модPL/SQL в основном повторяет концепции ADA 25-летней давности. Да, да господин мод. Все давно уже украдено до нас. Лет 30 назад. В том числе новадеи типа жабы и си-шарпа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 11:03 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarer ModelRОракл не лезет в вышестоящий скоуп если нашел имя в текущем, Причем это правильный (необходимый) подход.Ну, здесь сигнатуру учитываем, там не учитываем - язык не поворачивается назвать это полностью логичным подходом. softwarer Иначе возможен следующий вариант: из-за изменения кода в одном месте стал иначе работать код в другом месте. Ну и что? Программа делает ровно что написано - из двух функций выбирает ту, которая подходит по сигнатуре. Другое дело, что шансов на такую переделку алгоритма разрешения имен ИМХО нет никаких с учетом имеющегося задела на PL/SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 11:24 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
LongsvanoЕсли есть время, можете накатать кусочек кода чтобы я это понял? Просто вместо двух блоков сделать три - одна процедура, вторая процедура и вызов. В результате, вставив вторую процедуру (между первой и вызовом) мы ломаем программу там, где предпочитающий подобную "далекую перегрузку" программист рассчитывает, что будет осуществлен вызов правильной процедуры. Я безусловно согласен с тем, что и исходный пример, и этот - плохой стиль программирования. И я всячески предостерегал бы от использования больших по размеру программных блоков со сложной вложенностью и активным использованием внутренних подпрограмм. Но - принята концепция, разрешающая это, так что стоит подстраховаться от наиболее неправильного использования. Повторюсь: эта концепция нравится мне тем, что мы ничего не теряем (сохраняем все те же возможности), но код чуть более защищен от ошибок. Если угодно аналогию - на Java существует неприятная особенность. Представьте себе, что есть классы А и Б, в классе Б определен метод М. Теперь, если другой программист в какой-то момент времени добавит в А метод М, метод Б.М нежданно-негаданно окажется вызываемым вместо А.М в самых неожиданных местах, с понятными последствиями. Для полноты картины, программисты классов А и Б могут не знать друг о друге и не видеть чужих исходников. В С++, если не изменяет память, легко организовать аналогичную проблему. А вот в дельфе - не удастся, при том, что все возможности полиморфизма сохраняются. И я полагаю это весьма удобным и правильным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 12:44 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
Yo.!!ты с кем разговариваешь думаешь лох лабающий на access разрабатывает модель бд в erwin или отслеживает код !? Интересно, это общий стиль оракловских сисадминов такой? Наблюдение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 12:47 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
авторПросто вместо двух блоков сделать три - одна процедура, вторая процедура и вызов. В результате, вставив вторую процедуру (между первой и вызовом) мы ломаем программу там, где предпочитающий подобную "далекую перегрузку" программист рассчитывает, что будет осуществлен вызов правильной процедуры. Не очень понятно, можно всетаки код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 12:52 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
ModelRНу, здесь сигнатуру учитываем, там не учитываем - язык не поворачивается назвать это полностью логичным подходом. Полагаю, полная логика - вещь, о которой можно рассуждать неограниченно долго. Для меня, если логика не дает новой возможности, но увеличивает вероятность ошибки - либо это не логика, либо нафиг такую логику. Ну и стоит отметить, что не возьмусь сделать глобальной таблицы по всем ЯП, но дельфа, в которой этот вопрос проработан куда лучше, чем в других известных мне компиляторах, поступает так же. Я бы сказал, в языке с автоконверсией типов (в которой, с моей точки зрения, и сосредоточено основное зло языка) хорошо реализовать перегрузку вообще невозможно. А поскольку перегрузка нужна, а от автоконверсии хрен откажешься, разработчикам пришлось искать компромисс. И имхо они неплохо справились. ModelRДругое дело, что шансов на такую переделку алгоритма разрешения имен ИМХО нет никаких с учетом имеющегося задела на PL/SQL. Я бы сказал, в первую очередь нет никаких причин его переделывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 13:22 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
softwarer А вот в дельфе - не удастся, при том, что все возможности полиморфизма сохраняются. И я полагаю это весьма удобным и правильным. Удастся, только варнинг будет. А вот в случае если нельзя определить вызов какой из перегружаемых процедур надо сделать - то будет ошибка. И это на мой взгляд логично Если опять немного вернуться к первоначальной теме - а T-SQLю до таких проблем еще надо дорасти :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 14:20 |
|
||
|
PL/sql и T/sql
|
|||
|---|---|---|---|
|
#18+
SergSuper softwarer А вот в дельфе - не удастся, при том, что все возможности полиморфизма сохраняются. Удастся, только варнинг будет. Не удастся. Варнинг будет, но смысл его строго противоположен - "я сделал правильно, а если вы вдруг хотите, чтобы сгенерился код под вышеописанный глюк, то укажите явно именно это намерение". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2006, 15:56 |
|
||
|
|

start [/forum/topic.php?all=1&fid=35&tid=1553578]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
163ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 522ms |

| 0 / 0 |
