|
|
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
Подскажите, как с помощью процедуры создать таблицу (временную таблицу) в Оракле 8i или 9i? Дабы после ее вызвать и заполнить данными из др таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 11:20:21 |
|
||
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
execute immediate 'create table ...'; Но это неправильный подход - создавать объекты на лету из хранимого кода, очень сильно неправильный. За такое принято кишки тупым кухонным ножом выпускать, однако ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 11:30:04 |
|
||
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
кишки новичку лучше оставить. Если поможешь, буду рад. Пробовал вернуть строки с помощью курсора (предварительно пролистав весь форум) - значения не возвращает. Ессесено я виноват, а вот где, никак не допру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 11:45:11 |
|
||
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
Покажи свой код - курсор, и как ты с ним работаешь. Непонятно, кто не возвращает значения. Если тебе нужна временная таблица, её следует создать заранее - строки в ней видны только в пределах текущей сессии или транзакции (смотря как создашь таблицу). Подробнее про этот механизм - ищи по форуму на предмет global temporary table (GTT). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 11:50:41 |
|
||
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
Спасибо за подсказку о temp table. А код следующий (слизанный тутже) в SQL/PLS declare type t_refcursor is ref cursor; cr t_refcursor; v_sql varchar2(200) := 'select * from miha.kodul'; begin open cr for v_sql; end; / или Create or replace Package Pack is type MyCur is REF CURSOR; Procedure prc(Mc in out MyCur); end Pack; / Create or replace Package body Pack is Procedure prc(Mc in out MyCur) is begin open Mc for select ul From kodul; end prc; end Pack; / А надо-то всего организовать обыкновенный отбор по вх.переменным из нескольких таблиц. В данном случае отобрать все наименования кодов из таблицы kodul. Сразу приношу извинения за вопрос делитанта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 12:03:03 |
|
||
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
вообще все не правильно для того чтобы курсор вернул данные его надо профетчить а OPEN только открывает курсор, но данные не фетчит, между прочим перед тем как делать OPEN желательно делать CLOSE, так как он может быть уже открыт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 12:10:05 |
|
||
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
с помощью чего это можно сделать? Цикл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 12:18:56 |
|
||
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
to SIMON a che ty togda s: SQL-02114: Invalid SQL Cursor usage: trying to CLOSE a CLOSEd cursor Code:, -2114, User Val:0 delat budesh? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 12:21:01 |
|
||
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
to Bardis Можно (нужно) проверять на isopen перед закрытием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 12:30:20 |
|
||
|
Бьюсь который день!
|
|||
|---|---|---|---|
|
#18+
> Подскажите, как с помощью процедуры создать таблицу (временную таблицу) в Оракле 8i или 9i? Считается правильным не создавать, а использовать ранее созданные GLOBAL TEMPORARY TABLES. Хотя, конечно, кому как нравится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 13:25:19 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32188972&tid=1989867]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
191ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 461ms |

| 0 / 0 |
