select
Se pueden hacer comparaciones dentro del SELECT, por ejemplo que el número de meses trabajados sea mayor que doce y que la persona tenga comisión???
te puedo meter la polla hasta que te salga leche por las orejas?
Tal vez esto te sirva
Asignación de Datos
Begin
Variable := null;
Variable := valor;
Variable := constante;
Variable := expresión;
...
End;
Condicionamiento If / ElsIf / End If
IF condición THEN
Sentencias
ELSIF condición THEN
Sentencias
END IF;
El Ciclo Loop
LOOP
EXIT WHEN condición;
END LOOP;
LOOP
IF condición THEN
EXIT;
END IF;
END LOOP;
El Ciclo For
FOR variable IN [REVERSE] valor_inicial .. valor_final LOOP
EXIT WHEN condición;
END LOOP;
El Ciclo While
WHILE condición LOOP
EXIT WHEN condición;
END LOOP;
El Select en PL/SQL
SELECT campos
INTO variables
FROM tablas
WHERE condición;
Excepciones
EXCEPTION
WHEN excepción THEN sentencia;
WHEN OTHER THEN sentencia;
END;
Excepciones más Conocidas
Dup_val_on_index Violación en llave primaria o índice único
No_data_found No se encontró registro
Too_many_rows Un select que debe devolver una fila devuelve varias
Invalidate_number Número inválido (Cuando se intenta convertir letras a números)
Value_error El valor no es permitido en el campo (Ocurre también cuando se asigna cadenas superan la longitud establecida)
Zero_divide División por cero
Invalid_cursor Cuando se está intentado cerrar un cursor ya cerrado
Cursor_already_open Cuanto se está intentando abrir un cursor ya abierto
Program_Error Error de Memoria
Timeout_resource Ocurren cuando se trata de poner candado a un registro y no lo logra hacer
Login_denied Login denegado
Para obligar ir a una excepción se puede utilizar la sentencia RAISE, la cual actúa como un GOTO hacia la excepción indicada, veamos:
RAISE [variable | excepción];
Asignación de Datos
Begin
Variable := null;
Variable := valor;
Variable := constante;
Variable := expresión;
...
End;
Condicionamiento If / ElsIf / End If
IF condición THEN
Sentencias
ELSIF condición THEN
Sentencias
END IF;
El Ciclo Loop
LOOP
EXIT WHEN condición;
END LOOP;
LOOP
IF condición THEN
EXIT;
END IF;
END LOOP;
El Ciclo For
FOR variable IN [REVERSE] valor_inicial .. valor_final LOOP
EXIT WHEN condición;
END LOOP;
El Ciclo While
WHILE condición LOOP
EXIT WHEN condición;
END LOOP;
El Select en PL/SQL
SELECT campos
INTO variables
FROM tablas
WHERE condición;
Excepciones
EXCEPTION
WHEN excepción THEN sentencia;
WHEN OTHER THEN sentencia;
END;
Excepciones más Conocidas
Dup_val_on_index Violación en llave primaria o índice único
No_data_found No se encontró registro
Too_many_rows Un select que debe devolver una fila devuelve varias
Invalidate_number Número inválido (Cuando se intenta convertir letras a números)
Value_error El valor no es permitido en el campo (Ocurre también cuando se asigna cadenas superan la longitud establecida)
Zero_divide División por cero
Invalid_cursor Cuando se está intentado cerrar un cursor ya cerrado
Cursor_already_open Cuanto se está intentando abrir un cursor ya abierto
Program_Error Error de Memoria
Timeout_resource Ocurren cuando se trata de poner candado a un registro y no lo logra hacer
Login_denied Login denegado
Para obligar ir a una excepción se puede utilizar la sentencia RAISE, la cual actúa como un GOTO hacia la excepción indicada, veamos:
RAISE [variable | excepción];
