Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2013, 16:08
Avatar de Txerrinko
Txerrinko
 
Fecha de Ingreso: abril-2010
Ubicación: Vitoria-Gasteiz, Pais Vasco, Spain, Spain
Mensajes: 45
Antigüedad: 14 años, 6 meses
Puntos: 0
Exclamación Llamada a procedimiento IN/OUT PL/SQL

Wenas tengo aqui un ejerccio pero nose como debo hacerle la llamada porque me sale que debo declarar la variable y nose como lo tengo que hacer ,el OUT me hace un lio
Código SQL:
Ver original
  1. SET SERVEROUTPUT ON;
  2.  
  3. CREATE OR REPLACE PROCEDURE CONTARVOC (FRA VARCHAR2, CANTVOC OUT NUMBER) IS
  4.  
  5. BEGIN
  6.  
  7. FOR I IN 1..LENGTH(FRA) LOOP
  8.  
  9.  
  10. IF SUBSTR(FRA,I,1) IN ('A','E','I','O','U') AND SUBSTR(FRA,I,1)!=' ' THEN
  11. CANTVOC:=CANTVOC+1;
  12. --NOS DEVUELVE LA CANTIDAD DE VECES DE LA VARIABLE PASADA POR PARAMETRO
  13. END IF;
  14. END LOOP;
  15. END;
  16. /
  17.  
  18. [/CODE]
  19. [CODE]
  20.  
  21.  
  22. SET SERVEROUTPUT ON;
  23.  
  24. CREATE OR REPLACE FUNCTION CONTARCONS (FRA VARCHAR2 ) RETURN NUMBER IS
  25.  
  26. CONT NUMBER:=0;
  27.  
  28. BEGIN
  29.  
  30.     FOR I  IN 1.. LENGTH(FRA) LOOP
  31.  
  32.         IF SUBSTR(FRA,I,1) NOT IN (' ','A','E','I','O','U') THEN
  33.  
  34.         CONT:=CONT+1;
  35.  
  36.         END IF;
  37.  
  38.     END LOOP;
  39. RETURN CONT;
  40. END;
  41. /
  42.  
  43.  
  44. SET SERVEROUTPUT ON;
  45.  
  46. DECLARE
  47.  
  48.     CURSOR CCLI IS
  49.  
  50.     SELECT NOMBRE
  51.     FROM TCLIENTE;
  52.    
  53.     X CCLI%ROWTYPE;
  54.    
  55.    CANTVOCALES NUMBER(4):=0;
  56.    
  57.    BEGIN
  58.     OPEN CCLI;
  59.     LOOP
  60.     FETCH CCLI INTO X;
  61.     EXIT WHEN CCLI%NOTFOUND;
  62.        
  63.     --PROCEDIMIENTO IN/OUT
  64.     CONTARVOC(X.NOMBRE,CANTVOCALES);
  65.    
  66.     DBMS_OUTPUT.PUT_LINE(X.NOMBRE || ' TIENE  '|| CANTVOCALES ||' VOCALES Y  '||
  67.             CONTARCONS(X.NOMBRE) || ' CONSONANTES');
  68.    
  69.    
  70.     END LOOP;
  71.     CLOSE CCLI;
  72. END;
  73. /
resulta que este es el procedimiento ,y lo que no entiendo es porque despues en
el programa que me creo con el cursor no me aparecen la cantidad de vocales... no me aparece nada .. no se que me falta poner... asi que nose agradeceria que alguien me ayudase

Última edición por gnzsoloyo; 16/06/2013 a las 16:13 Razón: Mal etiquetado