Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
alexey_tm
А все просто, чтобы именовать таблицу и /или колонку "русским именем" её нужно заключить в '', чтобы обратиться к ней, надо проделать тоже самое...

Не нужно ее заключать в кавычки. Это добавит к глюкам русских букв еще и глюки неправильного регистра символов.
1 июн 06, 15:59    [2730836]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
alexey_tm
Вообще-то для того, чтобы определить кто куда ссылается, существует словать данных...

То есть Вы предпочитаете получить исключение вида "constraint SYS_012345 violated" и отправиться в словарь данных смотреть, что это за constraint?

Нет, спасибо. Лично мне "constraint FK_TABLE1_TABLE2" куда как удобнее. Время, знаете ли, стоит денег.
1 июн 06, 16:02    [2730848]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Пьяный Лох
Member

Откуда:
Сообщений: 3652
2 Apex
Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось.

А я бы например кастрировал тех дибилов, которые английский ниасилили, но и по русски писать им религия не позволяет. В итоге пишут транслитом, да еще и с использованием абревиатур :). Получается скотоложество типа ScrPrDrID. Куй его знает что это такое, зато раскладку переключать не надо, и все типа крутые :).

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

Не видел и видеть не хочу.

Давайте обсуждать вкус устриц с теми, кто их ел.

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

Одно другому не мешает.
1 июн 06, 16:03    [2730852]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
softwarer

SourceSafe я выкинул очень давно. ErWin-ом пришлось пользоваться подольше, и поэтому наблюдал его кривую работу с русскими буквами, причем вообще без всякой БД - только внутри себя, на уровне записал модель в файл - прочитал модель из файла. Точную версию не помню; если не ошибаюсь, major version - 4, build 381.

ты с кем разговариваешь думаешь лох лабающий на access разрабатывает модель бд в erwin или отслеживает код !?

ЗЫ. я представляю что обо мне подумаеют если я в оракловый супорт зашлю типа [url=https://www.sql.ru/forum/actualthread.aspx?tid=184634&hl=%ec%e0%f2%fc+%f1%e8%ed%f2%e0%ea%f1%e8%f1#1548494этого[/url]
1 июн 06, 16:05    [2730866]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Longsvano
Ага. Классная перегрузка. Только такое перегрузить не может почемуто:

Передергиваете. В приведенном Вами примере вообще нет перегрузки.

Почему не видится верхняя функция?

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

-- Почему видится верхняя функция?
<<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;
1 июн 06, 16:05    [2730869]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Пьяный Лох
Member

Откуда:
Сообщений: 3652
2 alexey_tm
Прескорбно то, что залетевший сюда случайно ПЛ теперь будет утверждать, что Oracle не умеет работать с русскими буквами.

Так это ж не я утверждаю, это как раз таки ораклоиды глюки ловят с неанглийскими идентификаторами
1 июн 06, 16:07    [2730882]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862

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

1 июн 06, 16:08    [2730892]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Longsvano
Запишем еще раз: перегрузка в PL/SQL - кастрированная.

Запишем еще раз: некто Longsvano не знает, что есть перегрузка, однако употребляет это слово и строит на этой основе какие-то теории.
1 июн 06, 16:09    [2730898]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Yo.!!
ты с кем разговариваешь думаешь

Я думаю, что в общем случае не тебе определять, с кем и о чем мне разговаривать.
1 июн 06, 16:12    [2730920]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Пьяный Лох
Member

Откуда:
Сообщений: 3652
softwarer
Пьяный Лох
Впервые слышу о том, что ErWin, а уж тем более SourceSafe - не работают (криво работают) с юникодом вааще и русской кодировкой в частности.

SourceSafe я выкинул очень давно. ErWin-ом пришлось пользоваться подольше, и поэтому наблюдал его кривую работу с русскими буквами, причем вообще без всякой БД - только внутри себя, на уровне записал модель в файл - прочитал модель из файла. Точную версию не помню; если не ошибаюсь, major version - 4, build 381.

Я вот ErWin давно выкинул, по причине непроходимой его глючности. Но пока не выкинул - глюком именно с русскими буквачками не наблюдал. Что, разумеется, не значит, что их нет и быть не может (ну не видел я суслика...).
SourceSafe тоже не лучший выбор (ну разве что для "профессианала" типа Йо), но и он на моей памяти не глючил с кодировками etc.
1 июн 06, 16:13    [2730927]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

Откуда:
Сообщений: 51
автор
Видится. В своей области видимости. Хотя если не знать концепций... Попробуйте


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

Мне будет достаточно вашего определия перегрузки и ресурса, откуда вы его возьмете. А потом посмотрим подходит ли мой пример под перегрузку или нет.
1 июн 06, 16:16    [2730942]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Apex
Member

Откуда: Made in USSR
Сообщений: 3910
Пьяный Лох
2 Apex
Я за такое вот кастрировал бы, чтоб дебилов меньше рождалось.

А я бы например кастрировал тех дибилов, которые английский ниасилили, но и по русски писать им религия не позволяет. В итоге пишут транслитом, да еще и с использованием абревиатур :). Получается скотоложество типа ScrPrDrID. Куй его знает что это такое, зато раскладку переключать не надо, и все типа крутые :).

Обеими руками за!
Пьяный Лох

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

Не видел и видеть не хочу.

Давайте обсуждать вкус устриц с теми, кто их ел.

Спорьте, я лишь сказал, что и без них отлично себя чувствую.
1 июн 06, 16:32    [2731032]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

Откуда:
Сообщений: 51
автор
Получается скотоложество типа ScrPrDrID

Такое скотоложество получается в том числе и потому, что база заставляет сокращать человеческие имена.
Разработчик был бы рад записать нормальное имя, ан нет - НЭ ЛЭЗЭТ!
1 июн 06, 16:36    [2731075]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Пьяный Лох
Member

Откуда:
Сообщений: 3652
2 Apex
Спорьте, я лишь сказал, что и без них отлично себя чувствую

Зачем спорить? Вы ж их не ели :)
Как человек, участвовавший и в проектах с криво-английским naming convention, и в проектах русско-несокращенными схемами именований, могу лишь подтвердить высказывание andy st об упрощении разработки и сопровождения. Если, разумеется, используемый инструментарий (в том числе и СУБД) не взглючит ненароком (косой взгляд в сторону неназываемых СУБД).
А что до "и без них отлично себя чувствую"... хммм... я, быть может, и с однобуквенными названиями таблиц буду себя отлично чувствовать. Это никому ни о чем не говорит.

2 Longsvano
Такое скотоложество получается в том числе и потому, что база заставляет сокращать человеческие имена.
Разработчик был бы рад записать нормальное имя, ан нет - НЭ ЛЭЗЭТ!

Такое скотоложество получается в первую очередь потому, что разруха - она не в сортирах :)
Ну и ограничение в 30 символов, конечно... С одной стороны, 30 знаков - достаточно много... если не увлекаться префиксно-суффиксными схемами... Хотя и без них получалось вылазить за 30 символов, легко и ненапряжно...
С другой стороны, 15 юникодовых букаф - эт писец. Эт несерьезно.
1 июн 06, 16:55    [2731220]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Longsvano
Мне будет достаточно вашего определия перегрузки и ресурса, откуда вы его возьмете. А потом посмотрим подходит ли мой пример под перегрузку или нет.

Боюсь, книги не очень подойдут как ресурс. Из того, что легко найти, в целом верное определение - http://www.cs.ucc.ie/~dgb/courses/swd/glossary.html#O В нем только нужно понять, что есть single scope (отождествление этого с "просто scope" будет неверным).

Коротко: уже очень давно существует понятие области видимости идентификатора (display, scope). Сейчас в подавляющем большинстве случаев, область видимости идентификатора (и идентифицированного им объекта, соответственно) - часть блока, в котором объявлен этот идентификатор, после места объявления. Это и есть single scope из определения выше. Далее: в ЯП (впервые, по-моему, в Алголе, хотя могу ошибаться) потребовалась концепция взаимодействия display-ев, подключения одних в другие. То, что сейчас существует в виде вложенных блоков, использования внешних модулей и пакетов, наследования (видимость идентификаторов из предка), namespace-ов итп. Как только появилась эта потребность, появились и правила, определяющие приоритет видимости совпадающих идентификаторов из разных областей видимости. Во всех известных мне реализациях действует принцип - идентификатор, объявленный локально (в текущем блоке), скрывает идентификатор, подключаемый из внешнего блока. Наконец, что же есть перегрузка (overloading). Это фича объявления в одном display-е нескольких одноименных объектов, различимых по контексту использования.
1 июн 06, 16:58    [2731241]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
ModelR
Member

Откуда: Нижний Новгород
Сообщений: 1798
Longsvano
автор
Видится. В своей области видимости. Хотя если не знать концепций... Попробуйте


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

Мне будет достаточно вашего определия перегрузки и ресурса, откуда вы его возьмете. А потом посмотрим подходит ли мой пример под перегрузку или нет.
Извините за вмешательство но вопрос не в перегрузке, а алгоритме разрешения имен. см.
http://download-uk.oracle.com/docs/cd/B19306_01/appdev.102/b14261/subprograms.htm#sthref1744
Оракл не лезет в вышестоящий скоуп если нашел имя в текущем, причем перекрытие локальными именами глобальных идет без учета сигнатуры.
Что означает группу перегрузки способны образовывть лишь функции одного скоупа. Противоречит ли это понятию перегрузки - думаю нет. Слегка убого - да.
1 июн 06, 17:06    [2731289]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
ModelR
Оракл не лезет в вышестоящий скоуп если нашел имя в текущем,

Причем это правильный (необходимый) подход. Иначе возможен следующий вариант: из-за изменения кода в одном месте стал иначе работать код в другом месте. Скажем:

declare
  -- Вот эту процедуру мы добавили
  procedure DoIt ( Param integer ) is begin ... end ;
begin
  ...
  declare
    -- Вот эта процедура была раньше
    procedure DoIt ( Param varchar2 ) is begin ... end ; 
  begin
    ...
    DoIt ( 5 ) ;
  end ;
  ... 
end ;
1 июн 06, 17:20    [2731381]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

Apex wrote:
> locky
>
> в моем случае нечто вроде exec doc0301_header_mod, exec doc0302_header_mod.
>
> Это вы че, на каждый документ по процедуре создаете?
ну... вообще-то больше. плюс еще пачку генерит фреймвёрк.
а у Вас получается обойтись одной процедурой обработки для разнотипных
документов?

--
-------------------------
There's no silver bullet!

Posted via ActualForum NNTP Server 1.3

1 июн 06, 17:29    [2731434]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

Откуда:
Сообщений: 51
автор
Причем это правильный (необходимый) подход.


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

procedure DoIt ( Param varchar2 ) is begin ... end ; 

Вашей процедуре и ее набору аргументов присваивается некое хэш-имя, которое есть функция от типа(функ-я, процедура), имени, типов аргументов, их кол-ва и тд. Для машины procedure DoIt будет что-то типа того: PROC_FC086372CABC ну и тд. Для ваших DoIt этот хэш будет одинаковым (Здесь еще нужно как-то учесть DEFAULT параметры), так как varchar2 в number преобразуется автоматически - ваши два DoIt в представлении машины будут носить одинаковые имена.
Но в моем примере эти хэши-названия функций должны быть разные, потому, что передается РАЗНОЕ кол-во аргументов.
По-моему это недоработка или кривизна или косяк. О чем собственно я и говорил.
1 июн 06, 17:35    [2731471]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Александр Гoлдун
Member

Откуда:
Сообщений: 2290

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

1 июн 06, 17:54    [2731591]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Longsvano
Тут вам уже ответили.

Да неужто? Между моим сообщением (когда явно "еще не ответили") и Вашим (когда вроде как "уже ответили") ровно одно письмо, при этом это ответ Apex-у от locky. Полагаете, я - виртуал Apex-а?

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

Хм. Ну-ну.

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

Longsvano
По-моему это недоработка или кривизна или косяк. О чем собственно я и говорил.

Разумеется, Вы имеете право так считать. Сугубо технически любую концепцию можно назвать именно так.
1 июн 06, 18:17    [2731732]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

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


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

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

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

Однако, давайте пожмем друг другу руки. Спасибо за хороший тред.
1 июн 06, 18:35    [2731843]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Longsvano

Поправлюсь. "Не поняли" - пожалуй, неверно, скорее "не оценили".

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

Разумеется, предпочитаемая Вами концепция имеет право на жизнь. Но это совершенно не повод считать другую (и имхо - лучшую) кривой. Из вариантов "можно сделать А, защищен от Б" и "можно сделать А, нет защиты от Б" я почему-то предпочитаю первый.
1 июн 06, 18:40    [2731870]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Longsvano
и разрешить ее можно было одновременно как в вашу пользу, так и в мою, то есть так, чтобы работал и ваш пример и мой.

Нельзя.

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

PL/SQL в основном повторяет концепции ADA 25-летней давности. И совершенно не собирается повторять концепции одного опасного языка и одного плохого языка.
1 июн 06, 18:42    [2731875]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

Откуда:
Сообщений: 51
автор
Нельзя.

Если есть время, можете накатать кусочек кода чтобы я это понял?
1 июн 06, 18:47    [2731901]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить