Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Ayuda...

Estas en el tema de Ayuda... en el foro de Oracle en Foros del Web. Hola soy nuevo en el mundo del Oracle y estoy haciendo un trabajo, en el cual debo hacer lo siguiente: CREATE SEQUENCE SEQ INCREMENT BY ...
  #1 (permalink)  
Antiguo 21/05/2008, 22:30
Avatar de apache_rugby  
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Ayuda...

Hola soy nuevo en el mundo del Oracle y estoy haciendo un trabajo, en el cual debo hacer lo siguiente:

CREATE SEQUENCE SEQ
INCREMENT BY 15
MINVALUE 1000 MAXVALUE 5000;

CREATE TABLE CODIGOS
(CODIGO VARCHAR2(9),
NOMBRE VARCHAR2(50)
);


CREATE OR REPLACE PROCEDURE EJERCICIO4
(VNOM IN CODIGOS.NOMBRE%TYPE)
IS
a number(1);
BEGIN
a:=INSTR(vnom, ' ');
INSERT INTO CODIGOS(CODIGO, NOMBRE)
VALUES ('0'||SEQ.NEXTVAL||'-'|| SUBSTR(VNOM,1,1)||SUBSTR(VNOM,a+1,1) , VNOM) ;
END;
/

LA IDEA ES LA SIGUIENTE, SI YO POR EJEMPLO LLENO LA TABLA A TRAVES DEL PROCEDIMIENTOS CON: EXEC EJERCICIO4 ('AARON VALENZUELA CECCHI')
DEBERIA REGISTRARSE EL CODIGO EN LA TABLA COMO 01000-AVC , LAS ULTIMAS TRES LETRAS SON LAS INICIALES DEL NOMBRE Y LOS DOS APELLIDOS, PERO SOLO PUEDO TOMAR LA PRIMERA Y LA SEGUNDA INICIAL.... NO SE COMO TOMAR LA INICIAL DEL SEGUNDO APELLIDO...
AYUDA PLISSS
  #2 (permalink)  
Antiguo 22/05/2008, 19:18
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Ayuda...

suponiendo que ya resolviste el problema que se va a presentar cuando una persona tenga dos nombres (ejemplo "luis antonio"), un apellido compuesto (ejemplo "san algo") y un largo etc. etc.

tal vez la facil sea

v_ini_nombre := substr(vnom, 1,1);
v_ini_ape1 := substr(vnom, instr(v_nom, ' ') +1,1);
v_ini_ape2 := substr(vnom, instr(v_nom, ' ', 2)+1,1);
__________________
Blogzote.com :-) Mi blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:13.