|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
Есть процедура делающая выборку данных из неких таблиц. Есть несколько схем содержащих эти таблицы. В зависимости от параметра нужно чтобы процедура выбирала данные из определённой схемы. в оракле нашел такое ALTER SESSION SET CURRENT_SCHEMA. Как это сделать для Adaptive Server Enterprise/12.5.3? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 14:35 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
shurf89, Век живи, век учись! С удовольствием и я послушаю! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 15:25 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
примерно так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 18:25 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
White Owlпримерно так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Какой хитрый! А где указание схемы где расположены таблицы table1, table2 и table3? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 07:40 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
NashvilleКакой хитрый! А где указание схемы где расположены таблицы table1, table2 и table3?С одной стороны - нигде. В ASE нету "схем". Вообще нету. Но с другой стороны - они там же где и в Oracle: user1.table1, user2.table1 и тд. Только в ASE это называется "владелец таблицы" а не "схема". Некоторая разница между этими понятиями все-же есть, но очень маленькая и с практической точки зрения ты ее не увидишь еще очень долго. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 09:27 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
White Owl, Ну вот, дал еще один повод Ораклолюбам для гордости:) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 23:08 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
shurf89, дурость это. Во-первых так не сделать а почти никак. Во вторых, если сделать, то почти все преимущества хранимых процедур сводятся на нет. Делать надо через динамический Exec, но при этом пользователю нужно давать все нужные права непосредственно на таблицы. А по хорошему надо сливать все бд в одну и после жить долго и счастливо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2013, 10:57 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
Структура не выбиралась.Остановлюсь на динамическом exec.Как я понял это нужно для каждой схемы создавать одинаковую процедуру а потом просто выбирать с каким use вызывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 10:36 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
shurf89, Расскажи же, что ты понимаешь под словом "схема" ? Нет схем в ASE. Приведи DDL и код процедур. Структура не выбиралась -- значит начинай выбирать. Ты программист или бревно ? авторОстановлюсь на динамическом exec.Как я понял это нужно для каждой схемы создавать одинаковую процедуру а потом просто выбирать с каким use вызывать? Ну, можно кстати ещё сделать и так -- создать в каждой БД по процедуре (возможно, текст будет одинаков), а потом из главной БД вызвать по IF -ам или через EXEC @ уже процедуру из нужной БД. Если конечно "схема" -- это база данных, а не владелец объекта, как предположил WhiteOwl ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 10:49 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
MasterZiv, Схема - это БД. А по поводу бревна это вы зря или просто не попадали в такие ситуации. Структура сформировалась довольно давно и наверное на то были причины (давно это было).Этой структурой пользуюсь далеко не один я и программный комплекс.Если бы имел возможность всё подогнать под одну задачу так бы и поступил или создал тему соответствующею. Спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 12:52 |
|
Как задать текущее имя схемы в хранимой процедуре.
|
|||
---|---|---|---|
#18+
shurf89, OMFG, какие у вас потребности... можете загонять в переменную dynamic sql делать use, а потом проверять db_name(). есть конечно вариантик типа положить процедуру в sybsystemprocs с префиксом sp_ вызывать её из нужной базы. create procedure sp_example_multi_db_proc as select db_name() as schema_name , name from sysobjects go grant execute on sp_example_multi_db_proc to public use master go exec rssd..sp_example_multi_db_proc -- дает список объектов из rssd go exec model..sp_example_multi_db_proc -- дает список объектов из model go но хз, насколько хорошее это будет решение в продакшоне. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2013, 15:25 |
|
|
start [/forum/topic.php?fid=55&msg=38424500&tid=2009925]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
143ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 229ms |
total: | 464ms |
0 / 0 |