powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / PL/sql и T/sql
25 сообщений из 134, страница 4 из 6
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
25 сообщений из 134, страница 4 из 6
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / PL/sql и T/sql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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