Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 [15] 16 17 18 19 .. 23   вперед  Ctrl
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
SergSuper
Например информацию из триггера очень удобно получать через непосредственный вывод(главное потом не забыть этот вывод убрать :)


В Oracle это можно проделать через DBMS_OUTPUT (в отладочных целях).
Клиент в этом случае выбирает данные из буфера и отображает их.
30 янв 07, 11:49    [3711913]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Gluk (Kazan)
SergSuper
Например информацию из триггера очень удобно получать через непосредственный вывод(главное потом не забыть этот вывод убрать :)


В Oracle это можно проделать через DBMS_OUTPUT (в отладочных целях).
Клиент в этом случае выбирает данные из буфера и отображает их.


По поводу "не забыть убрать" весь этот вывод отключается одной командой
30 янв 07, 11:50    [3711919]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
softwarer
VIEWPROCEDURE
SELECTcreate view as select ....create procedure as select ....
INSERTcreate view as insert ....create procedure as insert .....



Сильно :)

pkarklin
Да еще не забыть, что такие хп только в пакетах можно создавать.


ХП может создаваться ТОЛЬКО в пакете в следующих случаях:

1. ХП использует переменные пакета
2. Используются рекурсивные вызовы
3. Используется перегрузка

В остальных случаях, вы можете лепить голые ХП сколько Вам заблагорассудится. Другой вопрос, что это МЕНЕЕ УДОБНО и такому подходу (лично я) не могу придумать никакого логического объяснения.
30 янв 07, 11:58    [3711985]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32893

Привет, Lepsik!
Ты пишешь:

Lepsik
L> ODBC давно предиктед и в 64-битной версии OS не поддерживается.

на всяк случАй напомню, что ODBC не есть изобретение M$, как некоторые полагают...
но справедливости ради, следует упомянуть, что и M$, тоже к нему приложила руку...

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3

30 янв 07, 11:59    [3711990]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
andy st
Member

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

В том-то и дело, в точности как Вы сказали и как привели пример с printf-ом. "Возврат результата селекта" - это побочный эффект выполнения селекта в функции. Ну а в любой работе по технологии программирования несложно найти объяснение, чем плохи функции с побочным эффектом и почему не стоит чрезмерно или увлекаться.

Странные выводы делает человек о вкусе ананасов, даже не попробовав их... :)
Если уж пошло дело в теорию, то правильность программы надо бы ДОКАЗЫВАТЬ. А уж потом в бой.
Без этого получается, что все современные технологии программирования - сплошные побочные эффекты.
А Вы как то избирательно это делаете - и DDL в транзакции, и openrowset тоже функциями с побочными эффектами объявите скоро...
И вооще mssql и пр. не-oracle - побочные эфекты программирования. :)
Честно. Складывается такое ощущение, что Вы в принципе не признаете возможность сущществования чего-то более совершенного, как будто уже стаж лет 40 и мозг отказывается принимать что-то новое, отличное от привычного, в принципе. А от всяческих отмазок (типа побочных эффектов) Ваш авторитет по крайней мере в моих глазах уже опускается к плинтусу.
softwarer

Вносить этот опасный ошибками механизм в Oracle, где есть возможность делать то же самое надежно - я бы не стал.

Есть опасный ошибками механизм циклов, возможны бесконечные циклы - убрать из oracle
Есть опасный ошибками механизм условий, когда можно соорудить такое условие, что оно никогда не выполнится - туда же.
А в C/C++ есть фичи, которые даже стандартом не описаны (типа i++=++i;) - вообще можно выпить йаду?
Вообще странная какая-то фобия... в программирование существует немеряно мест, где можно накосячить. Но, по крайней мере, я ни разу в системах, к которых имел какое-либо отношение, не наблюдал проблем с несколькими select в хранимых процедурах и обработкой этого дела на клиенте.
30 янв 07, 12:02    [3712017]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
я к чему, если вы хотите провести дебаг запроса (криво звучит, но все же) и узнать, какие же результаты возвращает запрос в процедуре
вы должны, как я понимаю сделать следующее
CREATE OR REPLACE PROCEDURE print_cursor
(
p_cursor in REF CURSOR
)
...
-- Как- то распечатать курсор, метаинформация (столбцы, типы) которого неизвестна...
...
/
CREATE OR REPLACE PROCEDURE work1
()
...

INSERT INTO INTO tbl1 (some_fields)
SELECT some_fields FROM tbl2 WHERE ...

-- Как я понимаю, дебаг этого запроса должен быть примерно таким ()
-- SET p_cursor = CURSOR (SELECT some_fields FROM tbl2 WHERE ...)
-- EXECUTE print_curosr p_cursor
...
/

Я правильно понял высказывании о дебаге?
30 янв 07, 12:11    [3712113]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
locky
Member

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

softwarer wrote:
> С возвратом из хранимок в MSSQL вообще много забавного. Помнится, когда
> я только поставил его, попробовал примерно следующий подход:
>
> create procedure p1 @data int output as
> set @data = *1*
> return @data
> go
>
> create procedure p2 @data int output as
> exec p1 @data
> go
>
> declare @data int
> exec p1 @data
> print coalesce (@data, -*666*)
> exec p2 @data
> print coalesce (@data, -*666*)
>
>
> Сразу оценил прозрачность, очевидность и прочую возможность
> программировать, зная только ANSI SQL. Кстати, а с каких пор ANSI SQL
> позволяет возвращать данные из ХП таким образом?
А что тут-то не так? :-)

Posted via ActualForum NNTP Server 1.3

30 янв 07, 12:14    [3712130]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Lepsik
А в ней кроме знания ANSI SQL еще и курсорную специфику Оракла со всеми далеко идущими последствиями.


Что за специфика и куда идущие из нее последствия коими Вы пугаете, не соблаговолите уточнить ???

Lepsik

softwarer
Пока что опять-таки получен один аргумент: ADO иначе не умеет.


Учитывая что Windows стоит на подавляещем большинстве десктоп систем можем сделать тупой и простой вывод - механизм Оракла безнадежно устарел и без подпорок существовать не может.
ODBC давно предиктед и в 64-битной версии OS не поддерживается.


У меня был аргумент и я не замедлил его продемонстрировать (c) Сказка от Тройке

Мне нравится Ваш тезис. Он очень хорошо отражает позицию Microsoft по отношению к не Windows системам. Но не будите ли Вы так любезны продемонстрировать решение следующей простой и жизненной задачки:

1. Имеется пул потоков, потоки из которого выделяются по мере необходимости
2. Имеется пул соединений с БД, выделяемых потокам по мере необходимости и отдаваемых по завершении

Внимание вопрос: как сие организовать на ультрасовременном ADO (наводка: вопрос сводится к передаче COM-объекта другому потоку). На УСТАРЕВШЕМ ODBC эта задачка решается как два пальца.

Кстати JDBC еще не объявлен устаревшим случайно ?
30 янв 07, 12:15    [3712135]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
andy st
Member

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

Вызывают с клиента - значит и результат идет на клиента. Если селект в ХП - значит и результат окажется внутри ХП, и без специальных дополнительных действий наружу не выйдет.

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

softwarer

Видя обычную процедуру, начинающуюся с begin, заканчивающуюся end и без следов какого-либо return внутри, он вряд ли поймет, что процедура что-то возвращает.

с точки зрения mssql эта проблема аналогична вопросу
"А сколько же в языке C в функцию printf надо передавать параметров?"
30 янв 07, 12:16    [3712144]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
Gluk (Kazan)
Gluk (Kazan)
SergSuper
Например информацию из триггера очень удобно получать через непосредственный вывод(главное потом не забыть этот вывод убрать :)


В Oracle это можно проделать через DBMS_OUTPUT (в отладочных целях).
Клиент в этом случае выбирает данные из буфера и отображает их.


По поводу "не забыть убрать" весь этот вывод отключается одной командой


Чтобы не злить softwarer-а уточню, я НЕ ПРИЗЫВАЮ использовать такой подход и САМ ЕГО НЕ ИСПОЛЬЗУЮ. Просто говорю, что такой подход имеет место быть.
30 янв 07, 12:17    [3712149]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
andy st
Member

Откуда:
Сообщений: 899
softwarer
Признаться, я в этом не ориентируюсь и никак не могу прокомментировать. И? Я, собственно, привел пример того, что возможен даже такой изврат, как работа ODBC и TDS непосредственно под Linux, хотя сам вряд ли стал бы делать так, предпочитая более прямые пути.

а какие они,
более прямые пути
???
30 янв 07, 12:18    [3712159]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
kennethr
softwarer
В Oracle этой формой для ограничения доступа к объектам будут пользоваться только ламеры, желающие сделать "как привыкли".

Расшифруйте почему, если не сложно. Я вижу здесь несколько проблем, например невозможно избежать мягких разборов. Но если есть желание создать пользователя с очень узкими правами, почему не использовать такой подход?


Потому что есть более мощные и удобные возможности
FGAC например, аналогов которому в MS SQL насколько мне известно нет и не предвидится
30 янв 07, 12:18    [3712160]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67454
Блог
Gluk (Kazan)
1. ХП использует переменные пакета
2. Используются рекурсивные вызовы

Хм. Это утверждение меня удивило. Не вижу проблемы в том, чтобы использовать переменные пакетов и рекурсию в обычных ХП.
30 янв 07, 12:21    [3712185]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
andy st
softwarer
Признаться, я в этом не ориентируюсь и никак не могу прокомментировать. И? Я, собственно, привел пример того, что возможен даже такой изврат, как работа ODBC и TDS непосредственно под Linux, хотя сам вряд ли стал бы делать так, предпочитая более прямые пути.

а какие они,
более прямые пути
???


В случае Oracle - OCI и OCCI или голый TNS к примеру (в ODBC Net)
30 янв 07, 12:30    [3712269]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
softwarer
Gluk (Kazan)
1. ХП использует переменные пакета
2. Используются рекурсивные вызовы

Хм. Это утверждение меня удивило. Не вижу проблемы в том, чтобы использовать переменные пакетов и рекурсию в обычных ХП.


С переменными пожалуй погарячился, но должен быть пакет в ЗАГОЛОВКЕ которого объявлены эти переменные. С рекурсией насколько помню дело хуже, во всяком случае с косвенной.
30 янв 07, 12:32    [3712297]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
kennethr
Member

Откуда:
Сообщений: 175
Gluk (Kazan)
FGAC

У любой задачи может быть несколько решений. Меня интересует причина отрицания этого способа.
ЗЫ: FGAC поможет вам, если вы хотите скрыть структуру базы данных? Он есть не enterprise версиях?
30 янв 07, 12:37    [3712340]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
andy st
Member

Откуда:
Сообщений: 899
Gluk (Kazan)
andy st
softwarer
Признаться, я в этом не ориентируюсь и никак не могу прокомментировать. И? Я, собственно, привел пример того, что возможен даже такой изврат, как работа ODBC и TDS непосредственно под Linux, хотя сам вряд ли стал бы делать так, предпочитая более прямые пути.

а какие они,
более прямые пути
???

В случае Oracle - OCI и OCCI или голый TNS к примеру (в ODBC Net)

это как бы понятно. а другие случаи?
неужели не рассматриваются?
30 янв 07, 12:39    [3712356]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
kennethr
Gluk (Kazan)
FGAC

У любой задачи может быть несколько решений. Меня интересует причина отрицания этого способа.
ЗЫ: FGAC поможет вам, если вы хотите скрыть структуру базы данных? Он есть не enterprise версиях?


Скрыть структуру я могу и без FGAC и без рефкурсоров. Банальными view.
В чем преимущества ВАШЕГО подхода ???
30 янв 07, 12:41    [3712372]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
andy st
Gluk (Kazan)
andy st
softwarer
Признаться, я в этом не ориентируюсь и никак не могу прокомментировать. И? Я, собственно, привел пример того, что возможен даже такой изврат, как работа ODBC и TDS непосредственно под Linux, хотя сам вряд ли стал бы делать так, предпочитая более прямые пути.

а какие они,
более прямые пути
???

В случае Oracle - OCI и OCCI или голый TNS к примеру (в ODBC Net)

это как бы понятно. а другие случаи?
неужели не рассматриваются?


Мы работаем с Oracle и MS SQL. Когда пришлось выбирать между OLE DB и ODBC, выбрали последний. В силу жизненной задачки, описанной чуть выше.
30 янв 07, 12:42    [3712390]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67454
Блог
andy st
Странные выводы делает человек о вкусе ананасов, даже не попробовав их... :)

Хм. Энди, весьма забавно то, что похоже из всех участников беседы только я и Gluk имеем какой-то опыт работы и на том, и на другом серверах. Павел вроде бы тоже некоторое время работал с Oracle, но к сожалению из его слов он совершенно не следует.

andy st
Без этого получается, что все современные технологии программирования - сплошные побочные эффекты. И вооще mssql и пр. не-oracle - побочные эфекты программирования. :)

Неаргументированный поток сознания. "Демагогия" - довольно мягкая характеристика.

andy st
Честно. Складывается такое ощущение, что Вы в принципе не признаете возможность сущществования чего-то более совершенного,



Нашли тоже более совершенное. Судя по всему, переменная @@ERROR для Вас более совершенна, чем механизм исключений, ну и так далее.

Пардон, несерьезно. Меня можно убедить аргументированными доказательствами, а с демагогией, простите, прошу экономить мое время.

andy st
А от всяческих отмазок (типа побочных эффектов) Ваш авторитет по крайней мере в моих глазах уже опускается к плинтусу.

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

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

andy st
Есть опасный ошибками механизм циклов, возможны бесконечные циклы - убрать из oracle

Cнова откровенная демагогия. Скучно. Собственно, если собрать все объективные аргументы, мелькавшие в топике, получается: не стоит делать хорошо и правильно, лучше сделать криво, потому что во-первых на одну строку меньше писать, а во-вторых потому что будет как в MSSQL.

andy st
А в C/C++ есть фичи, которые даже стандартом не описаны (типа i++=++i;) - вообще можно выпить йаду?

Если Вы не знаете стандарта - это не повод говорить, что такие фичи там не описаны. Мало того, в соответствии со стандартом написанное Вами даже должно иметь четко определенный результат (в отличие от i++=i++ - вот тут в соответствии со стандартом результат будет неопределенным).

andy st
Вообще странная какая-то фобия... в программирование существует немеряно мест, где можно накосячить.

Да, существует. И цель технологии программирования - выдавливать эти возможности, делать их маловероятными.

В частности, еще около сорока лет назад придумали "модульное программирование", основной которой являются понятия "инкапсуляция" и "четко определенный интерфейс взаимодействия". Придумали, как бы странно Вам это не казалось, для уменьшения количества ошибок, и практика показала, что таки да, их действительно становится меньше.

Сейчас же, к сожалению, в программирование приходит куча недоучек, прошедших по пути из левого института через эникейство, нарушает этот и другие принципы и радуются простоте. Блеск!

andy st
Но, по крайней мере, я ни разу в системах, к которых имел какое-либо отношение, не наблюдал проблем с несколькими select в хранимых процедурах и обработкой этого дела на клиенте.

Я не готов рассуждать о Вашем практическом опыте и даже не собираюсь спорить с ним. Не наблюдали - и хорошо. Значит, в MSSQL есть дыра, которую в знакомых Вам системах успешно обходят, в Oracle такой дыры нет и беспокоиться об ее обходе не нужно. При этом до сих пор никто не назвал хотя бы одной реальной пользы, приносимой этой дырой именно в таком виде, все сводится к "привычнее" и "жаль, что Oracle не дыряв так, как MSSQL, поставим ему за это минус".
30 янв 07, 12:42    [3712393]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
andy st
Member

Откуда:
Сообщений: 899
Gluk (Kazan)

Мы работаем с Oracle и MS SQL. Когда пришлось выбирать между OLE DB и ODBC, выбрали последний. В силу жизненной задачки, описанной чуть выше.

разговор был про linux
насколько я в курсе оттуда в mssql можно попасть только FreeTDS (других путей я не знаю, просвятите плз, если есть).
ODBC идет через тот же FreeTDS, объявленный Softwarer-ом извратом.
так какие же есть ДРУГИЕ пути доступа из под oracle на unix-подобных системах к не-oracle ?
30 янв 07, 12:49    [3712443]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67454
Блог
Gluk (Kazan)
С рекурсией насколько помню дело хуже, во всяком случае с косвенной.

C косвенной рекурсией действительно придется извращаться, но "из принципа" таки можно организовать. Впрочем, никто не мешает организовать косвенную рекурсию между вложенными процедурами. Прямая рекурсия никаких проблем не вызывает.

Ну а с тем, что при наличии пакетов отдельные ХП практически не нужны, я целиком согласен.
30 янв 07, 12:49    [3712445]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
kennethr
Member

Откуда:
Сообщений: 175
Gluk (Kazan)
Банальными view.

Так и подумал, что меня в view ткнут. :-) Преимуществ по идее никаких. Хотя в процедуру можно "запихнуть" не только запрос. Меня просто удивило отрицание такой возможности. И потом, вы не ответили на вопрос об Enterprise версиях.
Еще, не забыли про тот баг с редактированием view?
30 янв 07, 12:49    [3712448]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67454
Блог
kennethr
Но если есть желание создать пользователя с очень узкими правами, почему не использовать такой подход?

Вопрос не в правах. Такой подход годится только там, где есть желание создать пользователя с четко определенным списком запросов - таким, что он выполняет только их и никакие другие. А это как правило различного рода роботы и сервисы, живые люди склонны к вариациям. Для них лучше подходят FGAC и view, позволяющие легко и удобно эти вариации отработать.
30 янв 07, 12:53    [3712488]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL или Oracle  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67454
Блог
kennethr
Преимуществ по идее никаких.

Если не считать эффективность преимуществом, то никаких :)

kennethr
Еще, не забыли про тот баг с редактированием view?

И? А какие есть ненайденные баги с редактированием процедур? :)
30 янв 07, 12:54    [3712499]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 10 11 12 13 14 [15] 16 17 18 19 .. 23   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить