|
|
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Всем привет! Я хочу создать курсор типа cursor tfacr200 (date_f date, cuno char) is select a.t$ttyp as ttyp, (select sum(t$amth+t$cdam) from baan.ttfacr200308 b where b.t$ttyp = a.t$ttyp and b.t$trec <> a.t$trec and t$docd < date_f) as sum_opl_f, from baan.ttfacr200308 a where trim(t$cuno) = trim(cuno) and t$docd < date_t; при компиляции ХП возникает ошибка о недопустимости использования второго select - а, но в SQL Plus такой запрос отрабатывается без проблем В чем может быть ошибка? можно ли как-то переделать курсор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 10:20 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Ты привел именно то запрос, который откомпилировать пытаешься? В нем запятая лишняя после "as sum_opl_f". Если в плюсе отрабатывает без проблем, а в процедуре нет- как правило проблема связана с отсутствием явных прав (не через роли) на объекты, учавствующие в запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 11:55 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Можно поподробнее про явные права? На что это влияет? То бишь дача права роли, а потом предоставление роли не равны прямой дачи права? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 12:16 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Нет - для вьюх, процедур и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 12:24 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Разница есть, при компиляции Oracle проверяет прова на объекты используемые в PL\SQL блоке. Они должны быть указаны явно, так как имеется возможность использовать команду SET ROLE, что может привести к ошибкам. Еще имеется возможность выполнения блока с правами вызывающего, тогда можно использовать роли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 12:30 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Denis, Строчку объявления курсора я немного сократила, и запята это очепятка И вряд ли это проблемма с правами, т.к grant на эту таблицу я дала А жаба при компиляции говорит следующее: PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: и длинный список где ожидался select что же делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 14:01 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Ага, и Java внезапно появилась:) Скажи, так где именно ты хочешь объявить курсор: в pl/sql-процедуре или java-классе? покажи, как именно делаешь. И желательно бы иметь структуру таблицы baan.ttfacr200308, точнее только той ее части, которая касается запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 14:26 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Denis, не совсем пойму при чем тут Java, речь идет о хранимой процедуре PL/SQL структура таблицы наверное большой роли не играет. Может просто нельзя создавать курсоры со вложенными select-ми? хотя в документации ограничений не нашла :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 14:42 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Причина не в правах. До версии Oracle 9i в PL/SQL был отдельный sql-парсер. Он не учитывал все новшества SQL машины. Не берет он например select (select...) from . Поэтому в процедуре такие вещи можно использовать только с помощью динамического SQL. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. А можно и просто переписать запрос твоего курсора, примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 14:52 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
"жаба" - это TOAD? Значит, я не так тебя понял. Inline-select действительно появились в 9i. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 14:58 |
|
||
|
не могу создать курсор
|
|||
|---|---|---|---|
|
#18+
Хотя нет, вру: на 8i тоже идут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2003, 15:01 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32106474&tid=1991813]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 469ms |

| 0 / 0 |
