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 originalSET SERVEROUTPUT ON;
CREATE OR REPLACE PROCEDURE CONTARVOC (FRA VARCHAR2, CANTVOC OUT NUMBER) IS
BEGIN
FOR I IN 1..LENGTH(FRA) LOOP
IF SUBSTR(FRA,I,1) IN ('A','E','I','O','U') AND SUBSTR(FRA,I,1)!=' ' THEN
CANTVOC:=CANTVOC+1;
--NOS DEVUELVE LA CANTIDAD DE VECES DE LA VARIABLE PASADA POR PARAMETRO
END IF;
END LOOP;
END;
/
[/CODE]
[CODE]
SET SERVEROUTPUT ON;
CREATE OR REPLACE FUNCTION CONTARCONS (FRA VARCHAR2 ) RETURN NUMBER IS
CONT NUMBER:=0;
BEGIN
FOR I IN 1.. LENGTH(FRA) LOOP
IF SUBSTR(FRA,I,1) NOT IN (' ','A','E','I','O','U') THEN
CONT:=CONT+1;
END IF;
END LOOP;
RETURN CONT;
END;
/
SET SERVEROUTPUT ON;
DECLARE
CURSOR CCLI IS
SELECT NOMBRE
FROM TCLIENTE;
X CCLI%ROWTYPE;
CANTVOCALES NUMBER(4):=0;
BEGIN
OPEN CCLI;
LOOP
FETCH CCLI INTO X;
EXIT WHEN CCLI%NOTFOUND;
--PROCEDIMIENTO IN/OUT
CONTARVOC(X.NOMBRE,CANTVOCALES);
DBMS_OUTPUT.PUT_LINE(X.NOMBRE || ' TIENE '|| CANTVOCALES ||' VOCALES Y '||
CONTARCONS(X.NOMBRE) || ' CONSONANTES');
END LOOP;
CLOSE CCLI;
END;
/
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