Форум: "Базы";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
ВнизКак в процедуре Oracle вернуть один из нескольких курсоров? Найти похожие ветки
← →
Erik1 © (2005-01-18 17:35) [0]Делаю так:
CREATE OR REPLACE PROCEDURE SPL_LEP_KOIK
( sTunnus VARCHAR2
, nKl_ID NUMBER
, nAdr_ID NUMBER
, vCur OUT Stp_Const.tRefCursor)
IS
-- 2005.01.01 erik
vTunnus teenus.tunnus%TYPE;
CURSOR cTeenus IS
SELECT ID, Nimetus, Osakond, 1 Cur
FROM teenus
WHERE (tunnus = vTunnus) and tunnus not in ("DEKRENT","LT");
Teenus_rec cTeenus%ROWTYPE;
........
OPEN cTeenus;
FETCH cTeenus INTO Teenus_rec;
IF cTeenus%FOUND THEN
vCur := cTeenus; -- говорит здесь ошибка, а как правильно?
RETURN;
END IF;
OPEN cSeade;
FETCH cSeade INTO Seade_rec;
IF cSeade%FOUND then
vCur := cSeade;
RETURN;
END IF;
← →
forrest (2005-01-18 18:38) [1]может такой вариант:
if {условие} then
open vCur for
select ... from...
elsif {условие} then
open vCur for
select ... from...
end if;
← →
Erik1 © (2005-01-18 19:41) [2]Вобщето мне надо проверить непуста ли выборка. Каже тогда сделать сравнение IF vCur%FOUND THEN ? Но будет ли это работать без FETH?
← →
forrest (2005-01-19 10:15) [3]Я так понимаю, что курсор - это обыкновенный select. Можно воспользоваться функцией Count(*) и проанализировать её значение.
И именно её значение использовать как {условие } для if.
← →
Erik1 © (2005-01-19 10:48) [4]Up
← →
Erik1 © (2005-01-19 10:49) [5]И на каждое условие по 2 запроса?
← →
forrest (2005-01-25 10:09) [6]Сначала делаются два запроса на наличие записей в cTeenus и cSeade. Потом проверяется если в cTeenus есть записи то
open VCur for {select из cTeenus}. Если нет записей, то
open VCur for {select из cSeade}.
← →
Mutniy (2005-01-25 10:12) [7]ну в MSSQL есть такое
if exists(select * from myTable)
begin
...
end
← →
Reindeer Moss Eater © (2005-01-25 10:16) [8]Ты пытаешься связать ref курсор с явно объявленным курсором.
И нифига у тебя не выйдет.
← →
Erik1 © (2005-01-25 12:14) [9]Проблему решил открывая два раза курсор. А что быстрее UNION или мой метод?
← →
Reindeer Moss Eater © (2005-01-25 12:17) [10]А проверить?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 3.387 c