Untitled

mail@pastecode.io avatar
unknown
mysql
15 days ago
1.3 kB
2
Indexable
Never
DECLARE 
    v_id GDC_CARPETAS.id%TYPE;
BEGIN 
    -- Quitarle prefijo EM
    :P87019_ID_EMPLEADO := SUBSTR(:P87019_ID_EMPLEADO, 3);

    -- Consultar si ya existe una carpeta con ese nombre
    SELECT id 
    INTO v_id
    FROM GDC_CARPETAS 
    WHERE descripcion = :P87019_ID_EMPLEADO; 

    -- Si se encuentra, asignar el ID a la variable
    :P87019_ID_CARPETA := v_id;

EXCEPTION
    WHEN NO_DATA_FOUND THEN
        DECLARE 
            v_id_nuevo NUMBER;
        BEGIN
            -- Asignar un nuevo ID (puede ser el siguiente de una secuencia o alguna lógica)
            SELECT NVL(MAX(id), 9999) + 1 
            INTO v_id_nuevo 
            FROM GDC_CARPETAS 
            WHERE id >= 10000;
            
            -- Insertar la nueva carpeta
            INSERT INTO GDC_CARPETAS 
            (
                id,
                descripcion,
                id_padre,
                codigo_empresa,
                codigo_modulo
            )
            VALUES
            (
                v_id_nuevo,
                :P87019_ID_EMPLEADO,
                10,
                :GLOBAL_EMPRESA,
                87999
            )
            RETURNING id INTO :P87019_ID_CARPETA;
        END;
END;
Leave a Comment