powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему нельзя truncate в хранимой процедуре?!
14 сообщений из 14, страница 1 из 1
Почему нельзя truncate в хранимой процедуре?!
    #39447551
Фотография мегамозг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабж.
Что за безобразие?!
truncate нельзя - рэйзится pls-00103, а delete без проблем компилируется и выполняется!
В чём дело?!
И где про такие нелепые ограничения можно прочитать? В хранимых процедурах. Возможно, и в multi statement table-valued functions тоже есть подобные засады?
Начал (для учебных целей) переводить свой домашний учёт с ms sql 2005 на oracle 10g XE - такое впечатление, что хожу по граблям.
В t-sql таких проблем нет.
ЗЫ И ещё интересуют временные таблицы - живущие до конца коннекшна. С ними, как я понял, в оракле тоже не всё так просто?
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447552
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мегамозг,

Оставайся на ms sql
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447557
leonmbs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мегамозг,

потому что delete это DML а trunkate это DDL

попросту говоря trunkate пересоздает таблицу а не удаляет данные
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447561
Фотография мегамозг
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonmbsмегамозг,

потому что delete это DML а trunkate это DDL

попросту говоря trunkate пересоздает таблицу а не удаляет данные
Спасибо, чел, т.е., получается, ddl в хп запрещён?
Для меня это странно.
Я вчера начал фейерштейна-прибыла читать, до этого места ещё не дошёл, видимо.
Сотни раз писал в хп create table и тому подобное.
Ладно, учту, буду как-то жить дальше с этим.
Не знаю пока, как.
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447563
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мегамозгбуду как-то жить дальше с этим.
Не знаю пока, как
"Умный в гору не пойдёт, умный гору обойдёт..."

Oracle DDL "execute immediate"
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447566
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447570
мегамозг, а в чем безобразие? и к чему такие эмоции?

Просто ты ПРИВЫК к одной системе, а теперь столкнулся с другой. У тебя наверное в жизни много удивлений. Ты так же орешь, когда с механики на автомат пересаживаешься? "Что за безобразие, где моя 3-я педаль?! В целях обучения пересел со своей ржавой семерки на audi. Там таких проблем не было."
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447581
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мегамозгЗЫ И ещё интересуют временные таблицы - живущие до конца коннекшна.
Ничто так в мире не постоянно, как временное...
Временные таблицы в Oracle, по сути ничем, не отличаются от постоянных, чего нельзя сказать об их содержимом...особенно учитывая, что теоретически её могут использовать неограниченное количество клиентов, причём одновременно, но дальше собственного носа (собственных данных), никто не видит, чем там занимается сосед...
http://www.sql.ru/blogs/oracleandsql/1373 Временные таблицы используются в Oracle для хранения данных, которые относятся к одной сессии или одной транзакции.
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447588
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мегамозгВ чём дело?!
В кривых руках, не способных открыть документацию.

мегамозгНачал (для учебных целей) переводить свой домашний учёт с ms sql 2005 на oracle 10g XE
Не надо. Есть замечательная, великолепная, отлично подходящая для тебя СУБД MSSQL. Не лезь в Oracle, а?
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447720
мегамозг,

Забей на этот кривой, бесперспективный, умирающий оракл и переводи на PostgreSQL(Opensource, Enterprise). В ней и DDL в транзакциях работают(и в функциях) и truncate. Тем более сейчас идет импортозамещение во все поля.
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447743
Фотография rf_mail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мегамозгСабж.
Что за безобразие?!
truncate нельзя - рэйзится pls-00103, а delete без проблем компилируется и выполняется!
В чём дело?!
И где про такие нелепые ограничения можно прочитать? В хранимых процедурах. Возможно, и в multi statement table-valued functions тоже есть подобные засады?
Начал (для учебных целей) переводить свой домашний учёт с ms sql 2005 на oracle 10g XE - такое впечатление, что хожу по граблям.
В t-sql таких проблем нет.
ЗЫ И ещё интересуют временные таблицы - живущие до конца коннекшна. С ними, как я понял, в оракле тоже не всё так просто?

MS SQL И Oracle это вещи несравнимые.
Вам нужно взять документацию http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/toc.htm
прочитав ее, 99% вопросов для своего домашнего проекта вы снимете
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447768
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rf_mailMS SQL И Oracle это вещи несравнимыеони даже две простые строки сортируют по разному
Код: sql
1.
2.
3.
4.
select cast(1 as int) id
union all
select cast(null as int)
order by id

id<null>1
Код: plsql
1.
2.
3.
4.
SELECT CAST(1 AS INT) ID FROM dual
UNION ALL
SELECT CAST(NULL AS INT) FROM dual
ORDER BY ID

ID1<null>
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447778
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

Давай ещё вспомним про ansi_nulls, пустую строку и т.п.
...
Рейтинг: 0 / 0
Почему нельзя truncate в хранимой процедуре?!
    #39447790
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОракалИндусскийВ ней и DDL в транзакциях работают(и в функциях) и truncate.В оракле тоже ddl работает в функциях. То, что ddl условно транзакционен хорошо, но вот то, что транзакции не работают в функциях, куда более актуальный вопрос.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему нельзя truncate в хранимой процедуре?!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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