Туплю

Затупил...
Дата: 27.02.2007 12:08:44
Например, есть
-- TYPE SELCUR IS REF CURSOR;
PROCEDURE GET_X(C1 OUT SELCUR) AS
BEGIN
  OPEN C1 FOR
    SELECT * FROM DUAL;
  EXCEPTION
    WHEN OTHERS THEN
      RAISE;      
END;  
А до X как достучаться в PL/SQL ?
Jannny
Дата: 27.02.2007 12:10:13
В смысле? До названия вызывающей процедуры? Если да, то ищите в поиске
dmidek
Дата: 27.02.2007 12:10:37
Что у нас Х ?
Я думаю, FETCH поможет Вам :-)
SQL*Plus
Дата: 27.02.2007 12:18:52
Стучать 3 раза, зеленым молотком... :-)
Затупил
Дата: 27.02.2007 12:21:56
dmidek

PROCEDURE LOOK_X 
IS
  X VARCHAR2;
  X_CURSOR SELCUR;
BEGIN
  GET_X(X_CURSOR);
  
   LOOP          
     FETCH [b]?[/b] INTO X;        
     EXIT WHEN X_CURSOR%NOTFOUND;          
   END LOOP;
  
  EXCEPTION
    WHEN OTHERS THEN
      RAISE;      
END;  

mnick
Дата: 27.02.2007 12:23:33
? = X_CURSOR
и лучше вместо X VARCHAR2 писать X SELCUR%ROWTYPE;
Jannny
Дата: 27.02.2007 12:25:18
mnick
и лучше вместо X VARCHAR2 писать X SELCUR%ROWTYPE;
Вы погорячились
Затупил
Дата: 27.02.2007 12:27:50
Дело в том, что запрос выводит множество, как указать что мне уменно DUMMY ?
SQL*Plus
Дата: 27.02.2007 12:30:11
Затупил
Дело в том, что запрос выводит множество, как указать что мне уменно DUMMY ?
Покрасить DUMMY в синий цвет...
dmidek
Дата: 27.02.2007 12:32:40
В чем проблема ?

create or replace PROCEDURE GET_X(C1 OUT sys_refcursor) AS
BEGIN
  OPEN C1 FOR
    SELECT * FROM emp;
  EXCEPTION
    WHEN OTHERS THEN
      RAISE;      
END;  
/
CREATE OR REPLACE PROCEDURE LOOK_X 
IS
  X scott.emp%rowtype;
  X_CURSOR sys_refcursor;
BEGIN
  GET_X(X_CURSOR);
  
   LOOP          
     FETCH x_cursor INTO X;        
     dbms_output.put_line(x.empno);
     EXIT WHEN X_CURSOR%NOTFOUND;          
   END LOOP;
  
  EXCEPTION
    WHEN OTHERS THEN
      RAISE;      
END;  

begin
look_x;
end;
/
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934