powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / PL/sql и T/sql
134 сообщений из 134, показаны все 6 страниц
PL/sql и T/sql
    #33752056
mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите сравнить, выскажите свои мнения по поводу PL/sql и T/sql, плюсы и минусы
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33752124
Sim.On
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В T-SQL нет иерархических запросов, в PL-SQL нельзя процедурой вернуть набор данных
Если я ошибаюсь, поправьте меня
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33752144
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну 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
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33752244
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник


чел сравнить просил а не эту шелуху


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33752457
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sim.Onв PL-SQL нельзя процедурой вернуть набор данных
Если я ошибаюсь, поправьте меня
Есть в Оракле pipelined function, которая возвращает набор данных, а можно и и классически - через REF CURSOR (указатель на recordset)
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33752552
Один1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Yo.!!
Это вы хорошо набросили :)
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33752907
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В хранимках Oracle максимальная вложенность запроса - 3
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753166
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3JIA9I с**аВ хранимках Oracle максимальная вложенность запроса - 3

*зееевать
эт в каком оракле ;)? select * from v$version в студию
и вообще, чево, execute immediate отменили?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753241
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3JIA9I с**аВ хранимках Oracle максимальная вложенность запроса - 3

ну разве что если руки растут из жопы и не дотягиваются до 4-й вложености :)

aZm
и вообще, чево, execute immediate отменили?

и что через execute immediate запрос будет другой движек обрабатовать ?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753639
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!и что через execute immediate запрос будет другой движек обрабатовать ?

А вы что никогда не сталкивались что некоторые конструкции, лекго проглатываемые в коммандном SQL-е, не хотят компилироваться в PL/SQL-е?
В 8.1.5 помню нельзя было использовать ORDER BY в подзапросах. Во всей линии восьмерки аналитические функции не пашут в PL/SQL.

Вообще, конечно PL/SQL вещь неплохая, но огрех, мешающих жить сухо и комфортно - море. Что для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор. Хреновы индусы!
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753753
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Longsvano

неверю. ( но у меня нет восьмерки проверить.) pl/sql всего лишь вызывает движек SQL и все (см рисунок), да в восьмерке помнится были проблемы с несовместимостью некоторых типов, типа в SQL тип сделали, а в pl/sql еще нет.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753845
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм .. гугл говорит точно аналитические не пащут в восьмерке, получается что plsql пытается проверить синтаксис сам и если ему про аналитические функции не сказали, то он не компилит процедуру. выход спрятать синтаксис во view или через execute immediate, тогда действительно можно миновать проверку синтаксиса plsql движком. всеравно сумневаюсь я, что в восьмерке и 4-ная вложеность не работала ...
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753854
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!неверю.
"- Все ставки сделаны, поэтому денег в кассе быть не может.
- НЕ ВЕРЮ!
- А я тебя ни х..я и не убеждаю. ЭТО ФАКТ." (с) Snatch, Сп..и в переводе Гоблина.

Йо, ну это же несерьезно.
Мы же с вами не на теологическом форуме, жонглировать схемами из доков не собираемся. Мы же технари и инженеры, поэтому практика для нас - единственный критерий истины. Мало ли чего написал тех.писатель со слов пьяного индуса-разработчика. Поставьте воcьмерку и убедитесь.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753863
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторгугл говорит точно аналитические не пащут в восьмерке
Опоздал я со своим постом, вы сами уже нашли ответ.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753891
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Yo

именно. экзекут иммедиэйт дернет скл-энжин. иначе -будет использован плскл энжин. а они - разные
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753892
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что в восьмерке и 4-ная вложеность не работала ...

А это это такое вообще вложенность? Имеется ввиду что такое работать не будет:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT * FROM (
 SELECT * FROM (
  SELECT * FROM (
   SELECT * FROM (
    SELECT * FROM (
     SELECT NULL AS test FROM DUAL
    )
   )
  )
 )
)

"Сумневаюсь я"(c) И.В.Ломоносов
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753913
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.
create or replace procedure shit as
x int ;
begin
SELECT test into x FROM (
 SELECT * FROM (
  SELECT * FROM (
   SELECT * FROM (
    SELECT * FROM (
     SELECT NULL AS test FROM DUAL
    )
   )
  )
 )
);
 15  end;
 16  /

Procedure created.

SQL> show errors ;
No errors.
SQL> begin shit; end ;
  2  /

PL/SQL procedure successfully completed.

...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753921
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano Мало ли чего написал тех.писатель со слов пьяного индуса-разработчика. Поставьте воcьмерку и убедитесь.

ссссцуко! ненада про пьяных индусов, а? и так есть дикое желание разбомбить бангалор наккуй как рассадник клинических дебилов :(

зы.кто не верит - пообщайтесь с оракловыми приблудами на джаве :( поубивалбынах...
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753930
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
create or replace procedure shit as
x int ;
begin
SELECT test into x FROM (
 SELECT * FROM (
  SELECT * FROM (
   SELECT * FROM (
    SELECT * FROM (
     SELECT NULL AS test FROM DUAL
    )
   )
  )
 )
);
 15  end;
 16  /

Procedure created.

SQL> show errors ;
No errors.
SQL> begin shit; end ;
  2  /

PL/SQL procedure successfully completed.



версия? 8.0.х, 8.1.x,9.2.x?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33753958
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!ну да типа такого:

Кстати, этот пример может быть вовсе непоказательный. Посмотрите план этого запроса. Оптимизатор спокойно прочухивает, что вложенность для запроса роли не играет. То есть View внутренний (как он там правильно называется не помню) на образуется. А вот если таких вьюшек будет 4 - то фиг знает. Может товарищ и прав.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33754019
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aZm
версия? 8.0.х, 8.1.x,9.2.x?

у меня меньше 10.1 неосталось баз.

Longsvano Кстати, этот пример может быть вовсе непоказательный. Посмотрите план этого запроса. Оптимизатор спокойно прочухивает, что вложенность для запроса роли не играет. То есть View внутренний (как он там правильно называется не помню) на образуется. А вот если таких вьюшек будет 4 - то фиг знает. Может товарищ и прав.

пля, повторяю plsql не исполняет sql, он только проверяет синтаксис во время компиляции. причем судя по гуглу если процедуру оформить как анонимный блок то аналитеческие запросы в восьмерке пройдут на ура.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33754037
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя нет, не через анонимный, а просто SQL.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33754066
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпля, повторяю plsql не исполняет sql, он только проверяет синтаксис во время компиляции
И что с того? Пусть это баг SQL Statement Executor-а с вашей схемы. Раз PL/SQL вызывает SQL Statement Executor, то и наследует все его ошибки.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33754152
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano
И что с того? Пусть это баг SQL Statement Executor-а с вашей схемы. Раз PL/SQL вызывает SQL Statement Executor, то и наследует все его ошибки.
непонял о чем спор, если это ограничение sql движка то оно не будет работать ни через view ни через sqlplus, если же оптимизатор прочухивает - то проблема лишь как обойти проверку синтасиса plsql (если вдруг plsql не знает про такой синтаксис). а вообще последние проблемы такого рода как я понимаю были в 8рке, т.е. 10 лет назад, чего тормашить субд которая уже отжила свое и несупортится ?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33754182
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo не нуна быть таким категоричным :) буквально полгода назад я наблюдал не самый слабый продакшн да 8.1.7.3 :)
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33754346
AKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
create or replace procedure shit as
x int ;
begin
SELECT test into x FROM (
 SELECT * FROM (
  SELECT * FROM (
   SELECT * FROM (
    SELECT * FROM (
     SELECT NULL AS test FROM DUAL
    )
   )
  )
 )
);
 15  end;
 16  /

Procedure created.

SQL> show errors ;
No errors.
SQL> begin shit; end ;
  2  /

PL/SQL procedure successfully completed.



не понял - работает это.. у меня

Oracle enterprise edition release 8.0.5.0.0. production
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33754636
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
итого:
опытным путем доказано, что мембр 3JIA9I с**а пастернака нечетал, но асуждает ;)

---
No Pity. No Mercy. No Regret.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33756608
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 запрос с оконными функциями и получить ошибку парсера. Так что, декларации декларациями, а в реале немного по-другому...
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33756621
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К моему предыдущему посту.

На 10 парсер plsql и sql, действительно, общий.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33756624
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry за еще одно письмо. Правка, к сожалению, запрещена...

На последнем патче не 9 все тоже нормально работает.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33756626
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AISorry за еще одно письмо. Правка, к сожалению, запрещена...

На последнем патче не 9 все тоже нормально работает.

в смысле на последней 8рке ?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33756976
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! AISorry за еще одно письмо. Правка, к сожалению, запрещена...

На последнем патче не 9 все тоже нормально работает.

в смысле на последней 8рке ?

Просто по клавише промазал. На последнем патче на 9 (9.2.0.7 - на 9.2.0.1 не все работает гладко). В 8 для pl/sql и sql разные парсеры sql-команд во всех версиях.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33759394
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверял на 9.2 (кажется) - не давал даже создать такую процедуру.
aZmопытным путем доказано, что мембр 3JIA9I с**а пастернака нечетал, но асуждает ;)
Уважаемый, идите лесом. Пожалуйста.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33760159
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3JIA9I с**аПроверял на 9.2 (кажется) - не давал даже создать такую процедуру.
aZmопытным путем доказано, что мембр 3JIA9I с**а пастернака нечетал, но асуждает ;)
Уважаемый, идите лесом. Пожалуйста.
ниа. нифига не пойду. версию покажите. полную. в плюсе:

Код: plaintext
1.
2.
select *
from v$version
/

и потом - тестовый пример, подтверждающий ваши слова, в студию :)

зы. хотя если это 1й релиз 9.2. меня ничего не удивит.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33760328
alecsey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIК моему предыдущему посту.
На 10 парсер plsql и sql, действительно, общий.
кажется все же нет
/topic/180264#1506611
и ниже
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33761284
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33762055
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoА вы что никогда не сталкивались что некоторые конструкции, лекго проглатываемые в коммандном SQL-е, не хотят компилироваться в PL/SQL-е?
В восьмерке было такое. С тех пор стало заметно лучше.

LongsvanoВообще, конечно PL/SQL вещь неплохая, но огрех, мешающих жить сухо и комфортно - море.
Безусловно. Но выполнив проект на SQL2000, я стал больше ценить сухость и комфортность PL/SQL :)

LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор. Хреновы индусы!
А индусы-то тут при чем? Полагаю, это тяжкое наследие 70-х годов, и нам еще надо радоваться, что 30 символов, а не 8 или 16 :))

Конечно, хотелось бы от этого уйти. Но боюсь, у Oracle не осталось человека, готового дать зуб за "если мы увеличим максимальную длину, то найдем все места, где из-за этого что-то может сломаться". Правда, с тех же давних годов известно решение этой проблемы - потребовать, чтобы имена были любой длины, но различались по первым N символам (и соответственно - оставить везде где сейчас есть по 30 символов, заведя дополнительное поле/таблицу для "длинных имен").
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33762121
Фотография Anton Demidov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор
А ты попробуй ручками программировать, а не мышкой в гуях водить. Как напишешь раз двадцать имя своей таблицы, сразу поймёшь, что к чему.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33762322
aZm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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м релизе версии может быть что угодно) бага, которую пофиксили, имхо.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33762634
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton Demidov LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор
А ты попробуй ручками программировать, а не мышкой в гуях водить. Как напишешь раз двадцать имя своей таблицы, сразу поймёшь, что к чему.


Сер телепат, сер видит в чем я работаю и какой интрументарий использую?

Может сер скажет мне, почему практически в никаких языках таких ограничений не существует?
Может сер также вспомнит, почему все файловые системы выросли из узких штанишек коротких имен фйлов?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33762876
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.
27.
28.
29.
30.
31.
32.
33.
SQL*Plus: Release 9.2.0.4.0 - Production on Tr Mai 31 10:57:10 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Enter password:

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

SQL> create or replace procedure shit as
x int ;
begin
SELECT test into x FROM (
 SELECT * FROM (
  SELECT * FROM (
   SELECT * FROM (
    SELECT * FROM (
     SELECT NULL AS test FROM DUAL
    )
   )
  )
 )
);
end;
/ 
Procedure created.

SQL>  begin shit; end ;
  2  /

PL/SQL procedure successfully completed.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33762950
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор

к стате а нафига больше то ? это же не mssql где все процедуры свалены в одну кучу и длинные имена нужны чтоб в этой куче ориентироватся.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763014
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! LongsvanoЧто для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор

к стате а нафига больше то ? это же не mssql где все процедуры свалены в одну кучу и длинные имена нужны чтоб в этой куче ориентироватся.

Во первых, ответьте себе, почему в языках с областями видимости таких ограничений нет.

Во вторых. В оракле тоже все свалено в одну кучу в пределах схемы. Или вы предпочитаете логически связанные таблицы держать в одной схеме, другие в другой? Лично меня такой гиморой не устраивает.

В третьих. Дело предпочтения и привычек. Любит человек длинные читаемые индентификаторы - слава богу. Но зачем ломать голову (из за мудацкого необоснованного ограничения базы) как бы уместить имя в 30 символов чтобы оно осталось читаемым?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763025
--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 с ее недофайловой системой?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763039
--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoВ третьих. Дело предпочтения и привычек. Любит человек длинные читаемые индентификаторы - слава богу. Но зачем ломать голову (из за мудацкого необоснованного ограничения базы) как бы уместить имя в 30 символов чтобы оно осталось читаемым?
Ох...енно нечитаемое название из 30 символов
необоснованногоограничениябазы
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763045
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Longsvano

не ну если у тебя какие-то психологические проблемы по использованию стандартных фич оракла то не стоит обижатся. большинству нормальных людей индификатора schema.package.procedure как-то хватает :)
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763086
Гоблин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-- LongsvanoВ третьих. Дело предпочтения и привычек. Любит человек длинные читаемые индентификаторы - слава богу. Но зачем ломать голову (из за мудацкого необоснованного ограничения базы) как бы уместить имя в 30 символов чтобы оно осталось читаемым?
Ох...енно нечитаемое название из 30 символов
необоснованногоограничениябазы

Snatch
- Эй,Тайрон, припаркуйся вон там!
- Там слишком мало места...
- Таааам слишком мало места???!!! Да туда, бл*, боинг посадить можно!
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763093
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Во всех?
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 на РедХат Линукс.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763111
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор- Таааам слишком мало места???!!! Да туда, бл*, боинг посадить можно!
Господин Гоблин, спасибо вам за хороший перевод отличного фильма.

Вы привели хороший пример. Если комуто 30 символов за глаза хватает - я только могу порадоваться за них. Но вот мне, ни х..я не хватает.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763163
--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano
1) Чем было вызвано такое ограничение.

Да чем,чем... Тем что когда-то под эту струкртуру отвели 30 байт...
Longsvano
2) Фраза начинается с "несмотря на то, что...". Окончание цитаты привидите пожалуйста. Посмею предположить, что там будет чтото вроде того: "стандарт допускает сертифицировать компиляторы, обрабатывающие и более длинными идентификаторами".

Сейчас попробовал длинный индентфикатор на MS Visual C++ 6.0. Скушал и не подавился. Было предположение, что компилятор реально различает первые сколько-то символов, однако нет - добывив буковку в конце получил результат от разных длинных идентификаторов.
С вашего позволения могу протестировать и с GCC на РедХат Линукс.
Все правильно, у него это ограничение 2048 символов:)
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763223
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа чем,чем... Тем что когда-то под эту струкртуру отвели 30 байт...

Хмм, оказывается еще и байт.
Господа, въезжающие в тему как оракл работает с юникодом. Означат ли ограниение в 30 байт на идентификатор, что если мы его будем обзывать в национальной кодировке, длина его уменьшится до 15 символов?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763256
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да уменьшится, но за индификаторы на русском нада однозначно отрывать яйца.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763281
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano
Хмм, оказывается еще и байт.
Господа, въезжающие в тему как оракл работает с юникодом. Означат ли ограниение в 30 байт на идентификатор, что если мы его будем обзывать в национальной кодировке, длина его уменьшится до 15 символов?
Да.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SQL> select table_name, column_name, data_type, data_length, char_used, char_length
   2   from dba_tab_columns 
   3   where table_name = 'DBA_TABLES'
   4     and column_name = 'TABLE_NAME';

TABLE_NAME      COLUMN_NAME     DATA_TYPE   DATA_LENGTH CHAR_USED CHAR_LENGTH
--------------- --------------- ----------- ----------- --------- -----------
DBA_TABLES      TABLE_NAME      VARCHAR2              30  B                   30 

SQL> create table "АБВГДЕЁЖЗИКЛМНО" (id varchar2( 8 ));

Table created.

SQL> create table "АБВГДЕЁЖЗИКЛМНОП" (id varchar2( 8 ));
create table "АБВГДЕЁЖЗИКЛМНОП" (id varchar2( 8 ))
             *
ERROR at line  1 :
ORA- 00972 : identifier is too long
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763319
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!да уменьшится, но за индификаторы на русском нада однозначно отрывать яйца.

А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего.
Йо, это же всего лишь вопрос договоренности между разработчиками (и админом) - как называть идентификаторы - нравятся русские, слава богу, оракл вовсю им этому поспособствует.
Или же вы готовы привести ссылку на доки, где оракл мол "стронгли рекоммендед" не использовать неанглийские идентификаторы?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763358
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня на одной из баз макс. длина идентификатора - 70 символов (русское
наименование CK, отображающее смысл ограничениения.
также достаточно длинные имена FK - мнемонические.
длинные имена у ХП, сгенерированных фреймвёрком - тоже мнемонические
(префиксы+суффиксы+постфиксы+разные там фиксы/типы).

у тех проц, которые пишу ручками названия обычно не слишком длинные, но
всё-таки бывает...
doc03070201__0201_ClearCustomDutyDiff_act - вполне понятное в рамках
нашей системы наименование процедуры, отображающее тип документа
(03070201), тип спецификации (0201), действие (ClearCustomDutyDiff) и
собственно, поддействие (act). 41 букова. никто не умер, аднака.



--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763379
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyу меня на одной из баз макс. длина идентификатора - 70 символов

У вас MSSQL?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763400
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky

у тех проц, которые пишу ручками названия обычно не слишком длинные, но
всё-таки бывает...
doc03070201__0201_ClearCustomDutyDiff_act - вполне понятное в рамках
нашей системы наименование процедуры, отображающее тип документа
(03070201), тип спецификации (0201), действие (ClearCustomDutyDiff) и
собственно, поддействие (act). 41 букова. никто не умер, аднака.


все правильно, другого выхода в mssql нет, поскольку нормального неймспейса в mssql нет вам приходится страдать такой ерундой. в оракле вы бы сделали пакет doc03070201, в который бы объединили все действия с этим типом.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763407
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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]
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763428
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyу меня на одной из баз макс. длина идентификатора - 70 символов
Основной минус ограничения на длину идентификатора - оно мешает вводить конвенции именования объектов в БД. Скажем, если мы говорим, что для таблицы XXX поле ПК должно называться XXX_ID, а индекс - XXX_PK_I, максимально допустимая длина съезжает до 25 символов. Если мы говорим, что развязка многие-ко-многим между А и Б должна называться LINK_A_B - допустимая длина оказывается ограниченной двенадцатью (!) символами. И т. д.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763637
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano
А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего.

вот если бы им оторвали бы яйца еще на том этапе то небыло бы насвете этой уе****ой файл-серверной поделки которой нужет citrix чтоб хоть как-то шевелится.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763675
Хех...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!! Longsvano
А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего.

вот если бы им оторвали бы яйца еще на том этапе то небыло бы насвете этой уе****ой файл-серверной поделки которой нужет citrix чтоб хоть как-то шевелится.
Долой МТС из 1С!
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763699
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer lockyу меня на одной из баз макс. длина идентификатора - 70 символов
Основной минус ограничения на длину идентификатора - оно мешает вводить конвенции именования объектов в БД.

Вот! Господин Софтварер самую суть ухватил. Ограничение на длину имен не позволет ЕДИНООБРАЗНО именовать объекты. До есть подспудно заставляет плодить зоопарк, а это уже однозначное зло.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763717
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! Longsvano
А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего.

вот если бы им оторвали бы яйца еще на том этапе то небыло бы насвете этой уе****ой файл-серверной поделки которой нужет citrix чтоб хоть как-то шевелится.

Йо, если 1С - говно, то это никак не доказывает что определние имен на русском языке также плохо.

Вот скажите пожалуйста, почему вам не нравится именование объектов по русски? Только давайте РАЦИОНАЛЬНЫЕ и ОБЪЕКТИВНЫЕ ответы. Ответы, которые можно подвети под "религия запрещает" и ваши личные предпочтения и привычки не принимаются.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763784
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoВот скажите пожалуйста, почему вам не нравится именование объектов по русски? Только давайте РАЦИОНАЛЬНЫЕ и ОБЪЕКТИВНЫЕ ответы. Ответы, которые можно подвети под "религия запрещает" и ваши личные предпочтения и привычки не принимаются.
На самом деле, англоговорящие (к примеру) программеры дают имена переменным/объектам на том языке, на котором говорят и думают.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763786
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoВот скажите пожалуйста, почему вам не нравится именование объектов по русски?
Технически возможность русских идентификаторов мне очень не нравится из-за вышеприведенного примера с table does not exists. Практически на тех серверах, на которых я работаю, рано или поздно появляется триггер, запрещающий использование русских букв в именах объектов.

Именование объектов по-русски мне не нравится по двум причинам. Во-первых: если уж корежить язык и издеваться над ним, то я предпочитаю, чтобы это был чужой язык. Здесь также стоит упомянуть, что морфология русского языка, достаточно богатая логика словоформ делают его особенно уязвимой мишенью; если "select from table" - нормальная фраза с точки зрения грамматики английского, то "выбрать из таблица" звучит не то чтобы идеально по-русски. Во-вторых: мое чувство стиля говорит, что

Код: plaintext
select * from table

- нормально, легко читается, в то время как

Код: plaintext
select * from стол

- неоднородное уродство. Отсюда вывод: тогда и ключевые слова, и стандартные функции, и вообще все должно иметь альтернативный русский синтаксис. А такая идея может прийти в голову только больному на эту голову человеку.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763815
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763849
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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) короче русского.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763861
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano Yo.!! Longsvano
А это уже ваши психологические проблемы. Вон ОдинЭсники шустрят со своими русскими именами и ничего.

вот если бы им оторвали бы яйца еще на том этапе то небыло бы насвете этой уе****ой файл-серверной поделки которой нужет citrix чтоб хоть как-то шевелится.

Йо, если 1С - говно, то это никак не доказывает что определние имен на русском языке также плохо.

Вот скажите пожалуйста, почему вам не нравится именование объектов по русски? Только давайте РАЦИОНАЛЬНЫЕ и ОБЪЕКТИВНЫЕ ответы. Ответы, которые можно подвети под "религия запрещает" и ваши личные предпочтения и привычки не принимаются.
Для меня единственный агрумент против названий таблиц и процедур по-русски - необходимость постоянно переключать раскладку клавиатуры. Но для других объектов, которых не надо явно использовать в коде - это вполне имеет право на жизнь. Например названия индексов, триггеров, констрейнов
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763909
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quoе]индексов, триггеров, констрейнов[/quot]

Индексы и констраинты лихко могут использоваться в коде.
Индексы - в хинтах, имена констрейнов - при обработке исключений.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33763951
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano
Фигня это а не рациональные доводы. Сводящаяся к тому, что такаято-такая программа криво работает с русским. Учитесь правильным ответам у Софтварера.

т.е. то что программы небходимые професионалу для работы с субд (типа sourcesafe, erwin и пр.) это фигня, ну что ж, сами себе буратино.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33764587
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У оракла где-то было самое простое объяснение, почему не рекомендуется использовать нелатинские символы в названиях идентификаторов. Oracle не гарантирует, что с такими идентификаторами будут работать клиентские приложения третьих фирм.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33764818
Пьяный Лох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! Longsvano
Фигня это а не рациональные доводы. Сводящаяся к тому, что такаято-такая программа криво работает с русским. Учитесь правильным ответам у Софтварера.

т.е. то что программы небходимые професионалу для работы с субд (типа sourcesafe, erwin и пр.) это фигня, ну что ж, сами себе буратино.
Впервые слышу о том, что ErWin, а уж тем более SourceSafe - не работают (криво работают) с юникодом вааще и русской кодировкой в частности.
Почему-то все остальные (базы данных) работают с русскими идентификаторами на ура. В том числе и в паре с упомянутыми ЭрВинами и СорсСейфами.

Если Оракал такой убогий, что ниасилил русские буквы - ну так надо это признать, правда ведь, Йо?
Или гордость не позволяет?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33764949
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, ограничением в 30 с чем-то символов страдает не только Оракл, но и некоторые ЯП, например тот же PHP (при выборке из массива результата запроса), причем никаких сообщений об ошибке не выводится, просто нет значения.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765094
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пьяный Лох
Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765168
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пьяный Лох
пока могу признать, что лошок невьехал о чем взрослые говорят, ну и то что к сожелению оракл работает с уникодными символами в именах, что и создает проблемы.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765202
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Apex Пьяный Лох
Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось.
Вы когда-нибудь видели базы данных, в которых ВСЕ названия объектов написаны по русски и практически без сокращений???
Вы, судя по всему, даже не представляете, как в таком случае упрощается разработка и сопровождение системы...
Соболезную
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765209
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> у меня на одной из баз макс. длина идентификатора - 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
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765229
alexey_tm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пьяный Лох
Если Оракал такой убогий, что ниасилил русские буквы - ну так надо это признать, правда ведь, Йо?
Или гордость не позволяет?

Прескорбно то, что залетевший сюда случайно ПЛ теперь будет утверждать, что Oracle не умеет работать с русскими буквами.
А все просто, чтобы именовать таблицу и /или колонку "русским именем" её нужно заключить в '', чтобы обратиться к ней, надо проделать тоже самое... Разработчики практически всегда об этом забывают... И меня кайне раздражает, что я должен писать в запросах, испавляя их ошибки, как всегда в аварийном порядке select .. from "вася пупкин", ну чем я виноват. Если хотите раскрыть суть объекта, используйте comment, все наглядно и просто...

Возвращаясь к основной теме. Сравнивать TL/SQL и PL/SQL не кореектно, никто не сравнивает basic и c++.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765253
alexey_tm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
честно говоря, достаточно смутно представляю себе, что такое неймспейс.
предполагаю - некая штука, позволяющая разбивать процедуры и проч. вроде
как по модулям? в этом случае вызов процы был бы нечто вроде
[doc03070201].[s0201_ClearCustomDutyDiff_act]?
хотя бывают процы, которые работают одновременно с двумя типами
документов, или для нескольких типов - их кидать в [общий] неймспейс?

Что такое библиотека, например dll Вы представляете? Ну это тоже самое.
Разве для того, чтобы обратиться к разным файлам надо писать разные библиотеки?
Ребята, ну не спорте, не знаете Oracle, лучше не позорьтесь...
locky
вот такое имя FK позволяет сразу понять - что и куда, независимо от
того, придерживались разработчики "сухаревской конвенции", или не
придерживались (хотя скобки и запятие в именах мне не очень нравятся).
FK_EORule_(SpecifType,FieldName)_StorageValue_(StorageLine,Name)

Вообще-то для того, чтобы определить кто куда ссылается, существует словать данных...
И вылавливать по именам зависимости - не просто не верно, просто преступно, забыли переименовать, да мало ли что...
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765288
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторРебята, ну не спорте, не знаете Oracle, лучше не позорьтесь...
Ну так объясните незнающим людям как организовать эти самые неймспэйсы в оракле кроме как городить лишние схемы?
Лично я с удовольствием вас послушаю.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765495
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano авторРебята, ну не спорте, не знаете Oracle, лучше не позорьтесь...
Ну так объясните незнающим людям как организовать эти самые неймспэйсы в оракле кроме как городить лишние схемы?
Лично я с удовольствием вас послушаю.
Именно схемы, если речь идет об объектах базы данных, таких как таблицы, индексы, констрейнты. Посмотрите как это делает сам Oracle: схема SYS - одни объекты, схема SYSTEM - другие объекты, схема OUTLN - третьи. Разный физический смысл - разные служебные схемы. Если речь идет о процедурах, функциях, типах - для этого существуют пакеты (как модули в Паскале). У пакета есть интефейс (package spec) и реализация (package body), поддерживается перегрузка подпрограмм в пакете, инициализация пакета, сокрытие реализации (что-то типа protected method). По сути все что нужно, для поддержки парадигмы модульного программирования. Для эстэтов есть объекты с наследованием и прочими прелестями...
Встерчный вопрос: а сколько у вас таблиц в одной схеме, раз вы уперлись в ограничение на длину имени?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765562
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st Apex Пьяный Лох
Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось.
Вы когда-нибудь видели базы данных, в которых ВСЕ названия объектов написаны по русски и практически без сокращений???
Вы, судя по всему, даже не представляете, как в таком случае упрощается разработка и сопровождение системы...
Соболезную
Не видел и видеть не хочу.
Сопровождение облегчает грамотная декомпозиция системы, четкая модульная реализация, грамотно написаный код. А не название объектов в кириллической кодировке.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765601
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортипах - для этого существуют пакеты
Здорово. Вот и объявите мне объектный тип в пакете.


авторподдерживается перегрузка подпрограмм в пакете
Ага. Классная перегрузка. Только такое перегрузить не может почемуто:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
-- Почему не видится верхняя функция?
DECLARE
	FUNCTION GetUName(a IN VARCHAR2, b IN VARCHAR2, c IN VARCHAR2) RETURN VARCHAR2 AS
	BEGIN
		RETURN a||b||c;
	END;
BEGIN
	DECLARE
		Test VARCHAR2( 100 );
		FUNCTION GetUName RETURN VARCHAR2 AS
		BEGIN
			RETURN 'aaa';
		END;
	BEGIN
		Test := GetUName();
		Test := GetUName( 1 , 2 , 3 );
	END;
END;
/


авторВстерчный вопрос: а сколько у вас таблиц в одной схеме, раз вы уперлись в ограничение на длину имени?

Да разница то? Вам показали где-то выше наглядный пример, что ограничение на длину имен не дает единообразно именовать объекты.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765671
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Apex
Не видел и видеть не хочу.
в этом и проблема.... )
походу уже в генах.... что-то на уровне мутации... ;-Р
Apex
Сопровождение облегчает грамотная декомпозиция системы, четкая модульная реализация, грамотно написаный код. А не название объектов в кириллической кодировке.
А кто спорит по поводу декомпозиции, модульности и грамотности кода??
Просто в случает именования объектов по русски и с минимумом сокращений поиск нужных объектов (особенно когда их в системе десятки тысяч) самую малость упрощается хотя бы только тем, что не надо копаться в справочниках, описывающих сокращения и условные обозначения.
Мне, например, уже довольно сложно придумать сокращение, чтобы как-то назвать отчет "Выполнение производственной программы в разразе участков и аггрегатов за выбранный интервал времени посуточно" .
Точнее, придумывается...
но как-то криво оно выглядит и вооще нечитабельно.
И вооще становится нечитабельно
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765674
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765814
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky

Тогда обясните мне.
Ладно, побъем по неймспейсам (чтобы это ни было).
один - относится к документы с типов 0301, другой - с типом 0302. В
каждом из неймспесов есть проца Header_mod. каков формат вызова
процедуры для типа 0301, 0302?
в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod.

чую вам пора почитать что-то где разжевано что такое программа подпрограмма и т.п. у вас явно должно быть: exec documents_api.header_mod(0301) ;
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765857
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano автортипах - для этого существуют пакеты
Здорово. Вот и объявите мне объектный тип в пакете.

Претензия не понятна. Объектные типы в пакетах обявлять нельзя, но обратного я и не утверждал.
Longsvano
авторподдерживается перегрузка подпрограмм в пакете
Ага. Классная перегрузка. Только такое перегрузить не может почемуто:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
-- Почему не видится верхняя функция?
DECLARE
	FUNCTION GetUName(a IN VARCHAR2, b IN VARCHAR2, c IN VARCHAR2) RETURN VARCHAR2 AS
	BEGIN
		RETURN a||b||c;
	END;
BEGIN
	DECLARE
		Test VARCHAR2( 100 );
		FUNCTION GetUName RETURN VARCHAR2 AS
		BEGIN
			RETURN 'aaa';
		END;
	BEGIN
		Test := GetUName();
		Test := GetUName( 1 , 2 , 3 );
	END;
END;
/

Сначала сюда , потом вот сюда
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765858
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765859
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!! locky

Тогда обясните мне.
Ладно, побъем по неймспейсам (чтобы это ни было).
один - относится к документы с типов 0301, другой - с типом 0302. В
каждом из неймспесов есть проца Header_mod. каков формат вызова
процедуры для типа 0301, 0302?
в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod.

чую вам пора почитать что-то где разжевано что такое программа подпрограмма и т.п. у вас явно должно быть: exec documents_api.header_mod(0301) ;
т.е. получается разница вся в том что вместо подчеркивания пишется точка? :)
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765861
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!чую вам пора почитать что-то где разжевано что такое программа подпрограмма и т.п. у вас явно должно быть: exec documents_api.header_mod(0301) ;

Да Вам не о том вроде.
Есть таблицы
Supplier, Addresses, SupplierAddresses
В этом случае неплохо, когда FK именуются скажем как FK_Supplier_SupplierAddresses, FK_Addresses_SupplierAddresses
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765874
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod.

Это вы че, на каждый документ по процедуре создаете?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765896
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apex locky
в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod.

Это вы че, на каждый документ по процедуре создаете?

Ремарка в стороны:
Между прочим PL/SQL не поддерживает шаблонного программирования (и слава богу, наверное, а ты индусы такое бы наворотили). Поэтому даже если функции делают что-то одинаковое но для разных типов - изволь городить кучу функций на каждый тип.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765901
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper Yo.!! locky

Тогда обясните мне.
Ладно, побъем по неймспейсам (чтобы это ни было).
один - относится к документы с типов 0301, другой - с типом 0302. В
каждом из неймспесов есть проца Header_mod. каков формат вызова
процедуры для типа 0301, 0302?
в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod.

чую вам пора почитать что-то где разжевано что такое программа подпрограмма и т.п. у вас явно должно быть: exec documents_api.header_mod(0301) ;
т.е. получается разница вся в том что вместо подчеркивания пишется точка? :)
Если для тебя разница между С и С++ только в том, что при обращении к методу класса ты пишешь точку, вместо подчеркивания - тогда да, только в этом.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765915
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano Apex locky
в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod.

Это вы че, на каждый документ по процедуре создаете?

Ремарка в стороны:
Между прочим PL/SQL не поддерживает шаблонного программирования (и слава богу, наверное, а ты индусы такое бы наворотили). Поэтому даже если функции делают что-то одинаковое но для разных типов - изволь городить кучу функций на каждый тип.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33765916
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПретензия не понятна. Объектные типы в пакетах обявлять нельзя, но обратного я и не утверждал.

Так и запишем: архитекторы оракла накосячили. Объект который явно можно определять на уровне пакета реализовали на уровне схемы.

авторподдерживается перегрузка подпрограмм в пакете

Запишем еще раз: перегрузка в PL/SQL - кастрированная. Чтобы ее подправить нужно приписывать префикс пакета или вставлять метки к анонимным блокам.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766044
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут какой-то перец рассказывал о работе в турецкой фирме, он воевал с местными сотрудниками за именование таблиц и полей на нормальном английском языке а не на ихнем обезьяньем.

8)

всегда лучше когда лучше. Имена по-русски это благо. Раньше этого не было т.к. трудно реализовать. Щас вроде все нормальные сервера поддерживают, кто не использует - руки не оттуда.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766353
dmitrysk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1024
всегда лучше когда лучше. Имена по-русски это благо. Раньше этого не было т.к. трудно реализовать. Щас вроде все нормальные сервера поддерживают, кто не использует - руки не оттуда.

Имена на русском не благо, а большой геморрой на заднице! Локальные поделки - это конечно хорошо, но когда с базой, разработанной такими вот умельцами (где именование идет на русском например), работают люди в любой другой, не русско-говорящей стране получается жопа! Кто-нибудь из Вас хоть раз задумывался об этом? Или как всегда, сперва сделаем, а потом будем думать и переделывать!

Меня например бесит, когда приходится переключать раскладку клавиатуры несколько раз, чтобы написать простой запрос.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766383
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
взял и всё по полочкам расставил.

8)

абсолютное большинство баз это как раз "локальный поделки". А если уж у вас рокетсъенс то французу с их нетерпимостью англ.языка может быть влом читать анг.имена. Китаец может англ. совсем не знать. Обычно в таких случаях называют просто т1, т2, т3 и т.д.

уважать надо себя а не эту бездушную железяку.

Вы ещё файлам имена из восьми символов давайте, чтоп под досом можно было переписывать.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766425
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пьяный ЛохВпервые слышу о том, что ErWin, а уж тем более SourceSafe - не работают (криво работают) с юникодом вааще и русской кодировкой в частности.
SourceSafe я выкинул очень давно. ErWin-ом пришлось пользоваться подольше, и поэтому наблюдал его кривую работу с русскими буквами, причем вообще без всякой БД - только внутри себя, на уровне записал модель в файл - прочитал модель из файла. Точную версию не помню; если не ошибаюсь, major version - 4, build 381.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766434
dmitrysk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Часто вижу у себя на работе, как такие "локальные поделки" начинают использовать во многих странах. Уродливые названия, типа T1..TN тоже не многим лучше. Меня удивляет, люди не читают похоже ничего, ведь существует большое количество документов, описывающие стандартное именование объектов, тем самым облегчая жизнь всем, начиная от разработчика и заканчивая пользователем.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766439
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexey_tmА все просто, чтобы именовать таблицу и /или колонку "русским именем" её нужно заключить в '', чтобы обратиться к ней, надо проделать тоже самое...
Не нужно ее заключать в кавычки. Это добавит к глюкам русских букв еще и глюки неправильного регистра символов.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766445
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexey_tmВообще-то для того, чтобы определить кто куда ссылается, существует словать данных...
То есть Вы предпочитаете получить исключение вида "constraint SYS_012345 violated" и отправиться в словарь данных смотреть, что это за constraint?

Нет, спасибо. Лично мне "constraint FK_TABLE1_TABLE2" куда как удобнее. Время, знаете ли, стоит денег.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766448
Пьяный Лох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Apex
Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось.
А я бы например кастрировал тех дибилов, которые английский ниасилили, но и по русски писать им религия не позволяет. В итоге пишут транслитом, да еще и с использованием абревиатур :). Получается скотоложество типа ScrPrDrID. Куй его знает что это такое, зато раскладку переключать не надо, и все типа крутые :).

Вы когда-нибудь видели базы данных, в которых ВСЕ названия объектов написаны по русски и практически без сокращений???
Вы, судя по всему, даже не представляете, как в таком случае упрощается разработка и сопровождение системы...
Соболезную
Не видел и видеть не хочу.
Давайте обсуждать вкус устриц с теми, кто их ел.

Сопровождение облегчает грамотная декомпозиция системы, четкая модульная реализация, грамотно написаный код. А не название объектов в кириллической кодировке.
Одно другому не мешает.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766457
Yo.!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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этого
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766459
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoАга. Классная перегрузка. Только такое перегрузить не может почемуто:
Передергиваете. В приведенном Вами примере вообще нет перегрузки.

Почему не видится верхняя функция?
Видится. В своей области видимости. Хотя если не знать концепций... Попробуйте

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
-- Почему видится верхняя функция?
<<L12345>>
DECLARE
	FUNCTION GetUName(a IN VARCHAR2, b IN VARCHAR2, c IN VARCHAR2) RETURN VARCHAR2 AS
	BEGIN
		RETURN a||b||c;
	END;
BEGIN
	DECLARE
		Test VARCHAR2( 100 );
		FUNCTION GetUName RETURN VARCHAR2 AS
		BEGIN
			RETURN 'aaa';
		END;
	BEGIN
		Test := GetUName();
		Test := L12345.GetUName( 1 , 2 , 3 );
	END;
END;
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766470
Пьяный Лох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 alexey_tm
Прескорбно то, что залетевший сюда случайно ПЛ теперь будет утверждать, что Oracle не умеет работать с русскими буквами.
Так это ж не я утверждаю, это как раз таки ораклоиды глюки ловят с неанглийскими идентификаторами
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766478
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766482
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoЗапишем еще раз: перегрузка в PL/SQL - кастрированная.
Запишем еще раз: некто Longsvano не знает, что есть перегрузка, однако употребляет это слово и строит на этой основе какие-то теории.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766498
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!ты с кем разговариваешь думаешь
Я думаю, что в общем случае не тебе определять, с кем и о чем мне разговаривать.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766504
Пьяный Лох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Пьяный ЛохВпервые слышу о том, что ErWin, а уж тем более SourceSafe - не работают (криво работают) с юникодом вааще и русской кодировкой в частности.
SourceSafe я выкинул очень давно. ErWin-ом пришлось пользоваться подольше, и поэтому наблюдал его кривую работу с русскими буквами, причем вообще без всякой БД - только внутри себя, на уровне записал модель в файл - прочитал модель из файла. Точную версию не помню; если не ошибаюсь, major version - 4, build 381.
Я вот ErWin давно выкинул, по причине непроходимой его глючности. Но пока не выкинул - глюком именно с русскими буквачками не наблюдал. Что, разумеется, не значит, что их нет и быть не может (ну не видел я суслика...).
SourceSafe тоже не лучший выбор (ну разве что для "профессианала" типа Йо), но и он на моей памяти не глючил с кодировками etc.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766515
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВидится. В своей области видимости. Хотя если не знать концепций... Попробуйте

Софтварер, читайте сообщения внимательнее.
Я выше писал, что этот косяк правиться добавлением метки к анонимному блоку.

Мне будет достаточно вашего определия перегрузки и ресурса, откуда вы его возьмете. А потом посмотрим подходит ли мой пример под перегрузку или нет.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766575
Фотография Apex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пьяный Лох2 Apex
Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось.
А я бы например кастрировал тех дибилов, которые английский ниасилили, но и по русски писать им религия не позволяет. В итоге пишут транслитом, да еще и с использованием абревиатур :). Получается скотоложество типа ScrPrDrID. Куй его знает что это такое, зато раскладку переключать не надо, и все типа крутые :).

Обеими руками за!
Пьяный Лох
Вы когда-нибудь видели базы данных, в которых ВСЕ названия объектов написаны по русски и практически без сокращений???
Вы, судя по всему, даже не представляете, как в таком случае упрощается разработка и сопровождение системы...
Соболезную
Не видел и видеть не хочу.
Давайте обсуждать вкус устриц с теми, кто их ел.

Спорьте, я лишь сказал, что и без них отлично себя чувствую.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766605
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПолучается скотоложество типа ScrPrDrID
Такое скотоложество получается в том числе и потому, что база заставляет сокращать человеческие имена.
Разработчик был бы рад записать нормальное имя, ан нет - НЭ ЛЭЗЭТ!
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766698
Пьяный Лох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Apex
Спорьте, я лишь сказал, что и без них отлично себя чувствую
Зачем спорить? Вы ж их не ели :)
Как человек, участвовавший и в проектах с криво-английским naming convention, и в проектах русско-несокращенными схемами именований, могу лишь подтвердить высказывание andy st об упрощении разработки и сопровождения. Если, разумеется, используемый инструментарий (в том числе и СУБД) не взглючит ненароком (косой взгляд в сторону неназываемых СУБД).
А что до "и без них отлично себя чувствую"... хммм... я, быть может, и с однобуквенными названиями таблиц буду себя отлично чувствовать. Это никому ни о чем не говорит.

2 Longsvano
Такое скотоложество получается в том числе и потому, что база заставляет сокращать человеческие имена.
Разработчик был бы рад записать нормальное имя, ан нет - НЭ ЛЭЗЭТ!
Такое скотоложество получается в первую очередь потому, что разруха - она не в сортирах :)
Ну и ограничение в 30 символов, конечно... С одной стороны, 30 знаков - достаточно много... если не увлекаться префиксно-суффиксными схемами... Хотя и без них получалось вылазить за 30 символов, легко и ненапряжно...
С другой стороны, 15 юникодовых букаф - эт писец. Эт несерьезно.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766713
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoМне будет достаточно вашего определия перегрузки и ресурса, откуда вы его возьмете. А потом посмотрим подходит ли мой пример под перегрузку или нет.
Боюсь, книги не очень подойдут как ресурс. Из того, что легко найти, в целом верное определение - http://www.cs.ucc.ie/~dgb/courses/swd/glossary.html#O В нем только нужно понять, что есть single scope (отождествление этого с "просто scope" будет неверным).

Коротко: уже очень давно существует понятие области видимости идентификатора (display, scope). Сейчас в подавляющем большинстве случаев, область видимости идентификатора (и идентифицированного им объекта, соответственно) - часть блока, в котором объявлен этот идентификатор, после места объявления. Это и есть single scope из определения выше. Далее: в ЯП (впервые, по-моему, в Алголе, хотя могу ошибаться) потребовалась концепция взаимодействия display-ев, подключения одних в другие. То, что сейчас существует в виде вложенных блоков, использования внешних модулей и пакетов, наследования (видимость идентификаторов из предка), namespace-ов итп. Как только появилась эта потребность, появились и правила, определяющие приоритет видимости совпадающих идентификаторов из разных областей видимости. Во всех известных мне реализациях действует принцип - идентификатор, объявленный локально (в текущем блоке), скрывает идентификатор, подключаемый из внешнего блока. Наконец, что же есть перегрузка (overloading). Это фича объявления в одном display-е нескольких одноименных объектов, различимых по контексту использования.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766745
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano авторВидится. В своей области видимости. Хотя если не знать концепций... Попробуйте

Софтварер, читайте сообщения внимательнее.
Я выше писал, что этот косяк правиться добавлением метки к анонимному блоку.

Мне будет достаточно вашего определия перегрузки и ресурса, откуда вы его возьмете. А потом посмотрим подходит ли мой пример под перегрузку или нет.Извините за вмешательство но вопрос не в перегрузке, а алгоритме разрешения имен. см.
http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14261/subprograms.htm#sthref1744
Оракл не лезет в вышестоящий скоуп если нашел имя в текущем, причем перекрытие локальными именами глобальных идет без учета сигнатуры.
Что означает группу перегрузки способны образовывть лишь функции одного скоупа. Противоречит ли это понятию перегрузки - думаю нет. Слегка убого - да.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766813
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRОракл не лезет в вышестоящий скоуп если нашел имя в текущем,
Причем это правильный (необходимый) подход. Иначе возможен следующий вариант: из-за изменения кода в одном месте стал иначе работать код в другом месте. Скажем:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare
  -- Вот эту процедуру мы добавили
  procedure DoIt ( Param integer ) is begin ... end ;
begin
  ...
  declare
    -- Вот эта процедура была раньше
    procedure DoIt ( Param varchar2 ) is begin ... end ; 
  begin
    ...
    DoIt (  5  ) ;
  end ;
  ... 
end ;
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766847
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apex wrote:
> locky
>
> в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod.
>
> Это вы че, на каждый документ по процедуре создаете?
ну... вообще-то больше. плюс еще пачку генерит фреймвёрк.
а у Вас получается обойтись одной процедурой обработки для разнотипных
документов?

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766868
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПричем это правильный (необходимый) подход.

Тут вам уже ответили.
Вообще как это разрешение имен реализуется по-уму на низком уровне:

Код: plaintext
procedure DoIt ( Param varchar2 ) is begin ... end ; 

Вашей процедуре и ее набору аргументов присваивается некое хэш-имя, которое есть функция от типа(функ-я, процедура), имени, типов аргументов, их кол-ва и тд. Для машины procedure DoIt будет что-то типа того: PROC_FC086372CABC ну и тд. Для ваших DoIt этот хэш будет одинаковым (Здесь еще нужно как-то учесть DEFAULT параметры), так как varchar2 в number преобразуется автоматически - ваши два DoIt в представлении машины будут носить одинаковые имена.
Но в моем примере эти хэши-названия функций должны быть разные, потому, что передается РАЗНОЕ кол-во аргументов.
По-моему это недоработка или кривизна или косяк. О чем собственно я и говорил.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33766954
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33767053
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoТут вам уже ответили.
Да неужто? Между моим сообщением (когда явно "еще не ответили") и Вашим (когда вроде как "уже ответили") ровно одно письмо, при этом это ответ Apex-у от locky. Полагаете, я - виртуал Apex-а?

LongsvanoВообще как это разрешение имен реализуется по-уму на низком уровне:
Хм. Ну-ну.

Комментировать сказанное Вами не хочется - там.. есть неудачные места, но главный вопрос в том, что Вы просто не поняли, о чем я говорю.

LongsvanoПо-моему это недоработка или кривизна или косяк. О чем собственно я и говорил.
Разумеется, Вы имеете право так считать. Сугубо технически любую концепцию можно назвать именно так.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33767122
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКомментировать сказанное Вами не хочется - там.. есть неудачные места, но главный вопрос в том, что Вы просто не поняли, о чем я говорю.

Комментарии не требуется. Посмотрите какой asm код получается на выходе С++ компилятора для функций. Убедитесь. Принимать мои слова на веру я вас не заставляю.

И я понял что вы говорите. Вы отстаиваете концепцию которую избрал Оракл. Я считаю что она убога и разрешить ее можно было одновременно как в вашу пользу, так и в мою, то есть так, чтобы работал и ваш пример и мой.

Однако, зная как медленно развивается PL/SQL, что он до сих пор не может банально повторить концекции С 30-и летней давности или Perl-a 10-и летней давности, то остается только брюзжать.

Однако, давайте пожмем друг другу руки. Спасибо за хороший тред.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33767138
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvano
Поправлюсь. "Не поняли" - пожалуй, неверно, скорее "не оценили".

Вы хотите некоторого определенного поведения (поиск максимально подходящего кандидата при минимальных усилиях программиста). Технически, разумеется, это легко реализуемо. Это поведение обладает определенным недостатком - возможностью легко сделать ошибку. Я привел простой пример, если привести чуть более сложный (функции определены в двух блоках, а используются в третьем), логика затмения не спасет от указанной мной проблемы скрытого изменения.

Разумеется, предпочитаемая Вами концепция имеет право на жизнь. Но это совершенно не повод считать другую (и имхо - лучшую) кривой. Из вариантов "можно сделать А, защищен от Б" и "можно сделать А, нет защиты от Б" я почему-то предпочитаю первый.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33767143
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Longsvanoи разрешить ее можно было одновременно как в вашу пользу, так и в мою, то есть так, чтобы работал и ваш пример и мой.
Нельзя.

LongsvanoОднако, зная как медленно развивается PL/SQL, что он до сих пор не может банально повторить концекции С 30-и летней давности или Perl-a 10-и летней давности, то остается только брюзжать.
PL/SQL в основном повторяет концепции ADA 25-летней давности. И совершенно не собирается повторять концепции одного опасного языка и одного плохого языка.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33767156
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНельзя.
Если есть время, можете накатать кусочек кода чтобы я это понял?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33767754
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerPL/SQL в основном повторяет концепции ADA 25-летней давности. И совершенно не собирается повторять концепции одного опасного языка и одного плохого языка.
YES !
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33768030
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модPL/SQL в основном повторяет концепции ADA 25-летней давности.

Да, да господин мод. Все давно уже украдено до нас. Лет 30 назад. В том числе новадеи типа жабы и си-шарпа.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33768090
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer ModelRОракл не лезет в вышестоящий скоуп если нашел имя в текущем,
Причем это правильный (необходимый) подход.Ну, здесь сигнатуру учитываем, там не учитываем - язык не поворачивается назвать это полностью логичным подходом. softwarer Иначе возможен следующий вариант: из-за изменения кода в одном месте стал иначе работать код в другом месте. Ну и что? Программа делает ровно что написано - из двух функций выбирает ту, которая подходит по сигнатуре.

Другое дело, что шансов на такую переделку алгоритма разрешения имен ИМХО нет никаких с учетом имеющегося задела на PL/SQL.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33768437
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LongsvanoЕсли есть время, можете накатать кусочек кода чтобы я это понял?
Просто вместо двух блоков сделать три - одна процедура, вторая процедура и вызов. В результате, вставив вторую процедуру (между первой и вызовом) мы ломаем программу там, где предпочитающий подобную "далекую перегрузку" программист рассчитывает, что будет осуществлен вызов правильной процедуры.

Я безусловно согласен с тем, что и исходный пример, и этот - плохой стиль программирования. И я всячески предостерегал бы от использования больших по размеру программных блоков со сложной вложенностью и активным использованием внутренних подпрограмм. Но - принята концепция, разрешающая это, так что стоит подстраховаться от наиболее неправильного использования.

Повторюсь: эта концепция нравится мне тем, что мы ничего не теряем (сохраняем все те же возможности), но код чуть более защищен от ошибок. Если угодно аналогию - на Java существует неприятная особенность. Представьте себе, что есть классы А и Б, в классе Б определен метод М. Теперь, если другой программист в какой-то момент времени добавит в А метод М, метод Б.М нежданно-негаданно окажется вызываемым вместо А.М в самых неожиданных местах, с понятными последствиями. Для полноты картины, программисты классов А и Б могут не знать друг о друге и не видеть чужих исходников. В С++, если не изменяет память, легко организовать аналогичную проблему. А вот в дельфе - не удастся, при том, что все возможности полиморфизма сохраняются. И я полагаю это весьма удобным и правильным.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33768451
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!!ты с кем разговариваешь думаешь лох лабающий на access разрабатывает модель бд в erwin или отслеживает код !?

Интересно, это общий стиль оракловских сисадминов такой? Наблюдение.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33768471
Longsvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПросто вместо двух блоков сделать три - одна процедура, вторая процедура и вызов. В результате, вставив вторую процедуру (между первой и вызовом) мы ломаем программу там, где предпочитающий подобную "далекую перегрузку" программист рассчитывает, что будет осуществлен вызов правильной процедуры.
Не очень понятно, можно всетаки код?
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33768601
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ModelRНу, здесь сигнатуру учитываем, там не учитываем - язык не поворачивается назвать это полностью логичным подходом.
Полагаю, полная логика - вещь, о которой можно рассуждать неограниченно долго. Для меня, если логика не дает новой возможности, но увеличивает вероятность ошибки - либо это не логика, либо нафиг такую логику. Ну и стоит отметить, что не возьмусь сделать глобальной таблицы по всем ЯП, но дельфа, в которой этот вопрос проработан куда лучше, чем в других известных мне компиляторах, поступает так же.

Я бы сказал, в языке с автоконверсией типов (в которой, с моей точки зрения, и сосредоточено основное зло языка) хорошо реализовать перегрузку вообще невозможно. А поскольку перегрузка нужна, а от автоконверсии хрен откажешься, разработчикам пришлось искать компромисс. И имхо они неплохо справились.

ModelRДругое дело, что шансов на такую переделку алгоритма разрешения имен ИМХО нет никаких с учетом имеющегося задела на PL/SQL.
Я бы сказал, в первую очередь нет никаких причин его переделывать.
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33768836
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer А вот в дельфе - не удастся, при том, что все возможности полиморфизма сохраняются. И я полагаю это весьма удобным и правильным.
Удастся, только варнинг будет. А вот в случае если нельзя определить вызов какой из перегружаемых процедур надо сделать - то будет ошибка. И это на мой взгляд логично

Если опять немного вернуться к первоначальной теме - а T-SQLю до таких проблем еще надо дорасти :)
...
Рейтинг: 0 / 0
PL/sql и T/sql
    #33769209
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuper softwarer А вот в дельфе - не удастся, при том, что все возможности полиморфизма сохраняются.
Удастся, только варнинг будет.
Не удастся. Варнинг будет, но смысл его строго противоположен - "я сделал правильно, а если вы вдруг хотите, чтобы сгенерился код под вышеописанный глюк, то укажите явно именно это намерение".
...
Рейтинг: 0 / 0
134 сообщений из 134, показаны все 6 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / PL/sql и T/sql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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