|
схема в функции
|
|||
---|---|---|---|
#18+
Добрый день, есть некоторая функция в которой есть несколько запросов, не знает ли кто случаем, есть ли возможность менять схему для таблиц в запросе, в идеале было бы вообще чтоб она передавалась через параметр, но и хорошо было бы чтобы все таблицы определялись в той же схеме что и функция. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2009, 11:22 |
|
схема в функции
|
|||
---|---|---|---|
#18+
kiruxan, Добрый день. Только если функция написана на внешнем языке прграммирования с использованием динамического sql (если v9.7, то и в sql скалярной функции можно). Тогда надо устанавливаеть current schema в нужное значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2009, 13:30 |
|
схема в функции
|
|||
---|---|---|---|
#18+
Доброго времени суток. Ситуация следующая - есть хранимая процедура SCHEMA1.STORAGE_PROC() - в ней объявляются курсоры типа Код: plsql 1.
т.е. нет явной привязки к схемам. В БД есть несколько схем(SCHEMA2, SCHEMA3) с однотипными таблицами, нужно в зависимости от условий менять схему этих таблиц. Возможно ли это в данной ситуации? Код: plsql 1.
не срабатывает почему-то... Сама процедура примерно такая Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Выборка всегда производится по схеме SCHEMA1. Хотя если в этой же процедуре в определении курсора изменить схему, например, на SCHEMA2, то выборка производится по схеме SCHEMA2 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2017, 20:53 |
|
схема в функции
|
|||
---|---|---|---|
#18+
Пробовал перед вызовом Код: plsql 1.
вызывать Код: plsql 1.
Также безрезультатно... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2017, 21:14 |
|
схема в функции
|
|||
---|---|---|---|
#18+
"Фишка" DB2'шных процедур - статический прекомпилированный SQL с уже составленными и разложенными в базе планами. В этом смысле весь тот SQL, который Вы пишете просто как SQL PL код, уже жёстко привязан к заданной схеме и от run time значения CURRENT SCHEMA не меняется. Что, в общем-то логично. Процедура инкапсулирует некоторую логику, и эта логика вот так по щелчку пальцев меняться бы не должна. Исключение - динамический SQL (используйте prepare + execute или execute immediate). Но это добавляет нагрузку на компиляцию (если запросов экстремально много). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2017, 22:53 |
|
схема в функции
|
|||
---|---|---|---|
#18+
-- файл xxx.db2 Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Компиляция. Файл xxx.bat Код: powershell 1. 2. 3. 4. 5. 6.
Использование: Код: sql 1. 2.
Так работает? (Люди, пишущие подобные SP, не перестают меня удивлять). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2017, 23:32 |
|
схема в функции
|
|||
---|---|---|---|
#18+
Просмотрел SET CURRENT SCHEMA внутри процедуры. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
(Но см. http://www.oracle.com/technetwork/testcontent/o27asktom-084983.html ) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2017, 09:25 |
|
схема в функции
|
|||
---|---|---|---|
#18+
talent, Добрый день. Вам надо использовать динамический SQL. Пример Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2017, 10:51 |
|
|
start [/forum/topic.php?fid=43&fpage=8&tid=1600397]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 304ms |
total: | 432ms |
0 / 0 |