Funci贸n de manejo de varchar2

acamba
11 de Marzo del 2005
Hola. Necesito hacer un tratamiento sobre una variable de tipo varchar2 consitente en contar las palabras que tiene, osea, contar las subcadenas que hay entre espacio y espacio. He buscado por ah铆 y no he visto ninguna funci贸n del tipo strtok de C, as铆 que igual me tengo que hacer yo la funci贸n co帽azo si no queda m谩s remedio. Escribo 茅sto por si alguien conoce alguna funci贸n de manejo de varchar2 que facilite la tarea. Gracias de antemano.

casi416
11 de Marzo del 2005
Dado que tengo la soluci贸n ah铆 va por si a alguien le viene bien:

DECLARE

cad_tmp varchar2(128);
nu_espacios integer;

BEGIN

nu_espacios := 0;
cad_tmp := trim(' ' from ' vamos a ver cuantas palabras tiene 茅sto ');

WHILE instr(cad_tmp, ' ') <> 0 LOOP
nu_espacios := nu_espacios + 1;
cad_tmp := trim(substr(cad_tmp, instr(cad_tmp, ' ') + 1));

END LOOP;

-- El numero de palabras es el numero de espacios m谩s 1.
dbms_output.put_line('Hay ' || TO_CHAR(nu_espacios + 1) || ' palabras.');

END;