Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6   вперед  Ctrl      все
 Re: PL/sql и T/sql  [new]
Aki
Guest
Yo.!!
ну да типа такого:
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
26 май 06, 14:12    [2710398]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
aZm
Member

Откуда:
Сообщений: 2356
итого:
опытным путем доказано, что мембр 3JIA9I с**а пастернака нечетал, но асуждает ;)

---
No Pity. No Mercy. No Regret.
26 май 06, 15:32    [2710866]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
Yo.!!
aZm

версия? 8.0.х, 8.1.x,9.2.x?


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

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


пля, повторяю plsql не исполняет sql, он только проверяет синтаксис во время компиляции. причем судя по гуглу если процедуру оформить как анонимный блок то аналитеческие запросы в восьмерке пройдут на ура.


PL/SQL движок отправляет запросы на SQL машину без своего собственного парсера только с 9.0. Впрочем, и на 9.2 можно спокойно закинуть в pl/sql запрос с оконными функциями и получить ошибку парсера. Так что, декларации декларациями, а в реале немного по-другому...
28 май 06, 12:57    [2714044]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
К моему предыдущему посту.

На 10 парсер plsql и sql, действительно, общий.
28 май 06, 13:09    [2714061]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
Sorry за еще одно письмо. Правка, к сожалению, запрещена...

На последнем патче не 9 все тоже нормально работает.
28 май 06, 13:12    [2714065]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
AI
Sorry за еще одно письмо. Правка, к сожалению, запрещена...

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


в смысле на последней 8рке ?
28 май 06, 13:15    [2714069]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
Yo.!!
AI
Sorry за еще одно письмо. Правка, к сожалению, запрещена...

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


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


Просто по клавише промазал. На последнем патче на 9 (9.2.0.7 - на 9.2.0.1 не все работает гладко). В 8 для pl/sql и sql разные парсеры sql-команд во всех версиях.
28 май 06, 19:41    [2714643]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
Проверял на 9.2 (кажется) - не давал даже создать такую процедуру.
aZm
опытным путем доказано, что мембр 3JIA9I с**а пастернака нечетал, но асуждает ;)

Уважаемый, идите лесом. Пожалуйста.
30 май 06, 00:24    [2718503]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
aZm
Member

Откуда:
Сообщений: 2356
3JIA9I с**а
Проверял на 9.2 (кажется) - не давал даже создать такую процедуру.
aZm
опытным путем доказано, что мембр 3JIA9I с**а пастернака нечетал, но асуждает ;)

Уважаемый, идите лесом. Пожалуйста.

ниа. нифига не пойду. версию покажите. полную. в плюсе:

select *
from v$version
/

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

зы. хотя если это 1й релиз 9.2. меня ничего не удивит.
30 май 06, 12:04    [2719645]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
alecsey
Member

Откуда: Москва
Сообщений: 830
AI
К моему предыдущему посту.
На 10 парсер plsql и sql, действительно, общий.

кажется все же нет
https://www.sql.ru/forum/actualthread.aspx?bid=3&tid=180264#1506611
и ниже
30 май 06, 12:35    [2719905]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production
30 май 06, 17:06    [2721702]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67415
Блог
Longsvano
А вы что никогда не сталкивались что некоторые конструкции, лекго проглатываемые в коммандном SQL-е, не хотят компилироваться в PL/SQL-е?

В восьмерке было такое. С тех пор стало заметно лучше.

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

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

Longsvano
Что для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор. Хреновы индусы!

А индусы-то тут при чем? Полагаю, это тяжкое наследие 70-х годов, и нам еще надо радоваться, что 30 символов, а не 8 или 16 :))

Конечно, хотелось бы от этого уйти. Но боюсь, у Oracle не осталось человека, готового дать зуб за "если мы увеличим максимальную длину, то найдем все места, где из-за этого что-то может сломаться". Правда, с тех же давних годов известно решение этой проблемы - потребовать, чтобы имена были любой длины, но различались по первым N символам (и соответственно - оставить везде где сейчас есть по 30 символов, заведя дополнительное поле/таблицу для "длинных имен").
31 май 06, 00:15    [2723059]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Anton Demidov
Member

Откуда: Atlanta, GA
Сообщений: 1187
Longsvano
Что для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор

А ты попробуй ручками программировать, а не мышкой в гуях водить. Как напишешь раз двадцать имя своей таблицы, сразу поймёшь, что к чему.
31 май 06, 01:58    [2723246]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
aZm
Member

Откуда:
Сообщений: 2356
3JIA9I с**а
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production


уууу ) в 1м релизе версии может быть что угодно) бага, которую пофиксили, имхо.
31 май 06, 09:49    [2723570]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

Откуда:
Сообщений: 51
Anton Demidov
Longsvano
Что для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор

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


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

Может сер скажет мне, почему практически в никаких языках таких ограничений не существует?
Может сер также вспомнит, почему все файловые системы выросли из узких штанишек коротких имен фйлов?
31 май 06, 11:11    [2724058]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
с**а да заливает :)


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.
31 май 06, 12:00    [2724526]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
Longsvano
Что для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор


к стате а нафига больше то ? это же не mssql где все процедуры свалены в одну кучу и длинные имена нужны чтоб в этой куче ориентироватся.
31 май 06, 12:15    [2724662]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

Откуда:
Сообщений: 51
Yo.!!
Longsvano
Что для меня совершенно непонятно - дурацкое ограничение в 30 символов на любой идентификатор


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


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

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

В третьих. Дело предпочтения и привычек. Любит человек длинные читаемые индентификаторы - слава богу. Но зачем ломать голову (из за мудацкого необоснованного ограничения базы) как бы уместить имя в 30 символов чтобы оно осталось читаемым?
31 май 06, 12:26    [2724780]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
--
Guest
Longsvano
Сер телепат, сер видит в чем я работаю и какой интрументарий использую?

Да ты шо? vi? emacs?
Longsvano

Может сер скажет мне, почему практически в никаких языках таких ограничений не существует?

Во всех?
ANSI С
Although ANSI allows 6 significant characters in external identifier names and 31 for names of internal (within a function) identifiers

Longsvano

Может сер также вспомнит, почему все файловые системы выросли из узких штанишек коротких имен фйлов?

Это ты про недоОСь DOS с ее недофайловой системой?
31 май 06, 12:29    [2724804]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
--
Guest
Longsvano
В третьих. Дело предпочтения и привычек. Любит человек длинные читаемые индентификаторы - слава богу. Но зачем ломать голову (из за мудацкого необоснованного ограничения базы) как бы уместить имя в 30 символов чтобы оно осталось читаемым?

Ох...енно нечитаемое название из 30 символов

необоснованногоограничениябазы
31 май 06, 12:33    [2724837]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Yo.!!
Guest
2Longsvano

не ну если у тебя какие-то психологические проблемы по использованию стандартных фич оракла то не стоит обижатся. большинству нормальных людей индификатора schema.package.procedure как-то хватает :)
31 май 06, 12:35    [2724853]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Гоблин
Guest
--
Longsvano
В третьих. Дело предпочтения и привычек. Любит человек длинные читаемые индентификаторы - слава богу. Но зачем ломать голову (из за мудацкого необоснованного ограничения базы) как бы уместить имя в 30 символов чтобы оно осталось читаемым?

Ох...енно нечитаемое название из 30 символов

необоснованногоограничениябазы

Snatch

- Эй,Тайрон, припаркуйся вон там!
- Там слишком мало места...
- Таааам слишком мало места???!!! Да туда, бл*, боинг посадить можно!
31 май 06, 12:45    [2724935]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

Откуда:
Сообщений: 51
автор

Во всех?
ANSI С
Although ANSI allows 6 significant characters in external identifier names and 31 for names of internal (within a function) identifiers



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

Сейчас попробовал длинный индентфикатор на MS Visual C++ 6.0. Скушал и не подавился. Было предположение, что компилятор реально различает первые сколько-то символов, однако нет - добывив буковку в конце получил результат от разных длинных идентификаторов.
С вашего позволения могу протестировать и с GCC на РедХат Линукс.
31 май 06, 12:47    [2724949]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
Longsvano
Member

Откуда:
Сообщений: 51
автор
- Таааам слишком мало места???!!! Да туда, бл*, боинг посадить можно!

Господин Гоблин, спасибо вам за хороший перевод отличного фильма.

Вы привели хороший пример. Если комуто 30 символов за глаза хватает - я только могу порадоваться за них. Но вот мне, ни х..я не хватает.
31 май 06, 12:51    [2724981]     Ответить | Цитировать Сообщить модератору
 Re: PL/sql и T/sql  [new]
--
Guest
Longsvano

1) Чем было вызвано такое ограничение.

Да чем,чем... Тем что когда-то под эту струкртуру отвели 30 байт...
Longsvano

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

Сейчас попробовал длинный индентфикатор на MS Visual C++ 6.0. Скушал и не подавился. Было предположение, что компилятор реально различает первые сколько-то символов, однако нет - добывив буковку в конце получил результат от разных длинных идентификаторов.
С вашего позволения могу протестировать и с GCC на РедХат Линукс.

Все правильно, у него это ограничение 2048 символов:)
31 май 06, 13:03    [2725080]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5 6   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить