przez Mikaela Sandoval 2 lat temu
185
Więcej takich
Type in your name.
Type in the things you like.
Las etiquetas son marcadas con los símbolos >. Para ir dirigir la ejecución hacia una etiqueta simplemente hay que usar la sentencia GOTO:
DECLARE
V_TOTAL NUMBER(9) := 0;
V_CONTADOR NUMBER(6) := 0;
BEGIN
<<calcular>>
V_CONTADOR := V_CONTADOR + 1;
V_TOTAL := V_TOTAL + V_CONTADOR;
IF V_TOTAL <= 20 THEN
DBMS_OUTPUT.PUT_LINE('Valor de V_TOTAL:' || V_TOTAL);
GOTO calcular;
END IF;
END;
Valor de V_TOTAL:1
Valor de V_TOTAL:3
Valor de V_TOTAL:6
Valor de V_TOTAL:10
Valor de V_TOTAL:15
Type in the personality traits you have.
Permiten ejecutar varias instrucciones múltiples veces. A éstas sentencias también se les conoce por el nombre de bucles repetitivos.
DECLARE
V_TOTAL NUMBER := 0;
V_CONTADOR NUMBER := 0;
BEGIN
LOOP
V_CONTADOR := V_CONTADOR + 1;
V_TOTAL := V_TOTAL + V_CONTADOR;
DBMS_OUTPUT.PUT_LINE('Valor de V_TOTAL:' || V_TOTAL);
EXIT WHEN V_TOTAL > 20;
END LOOP;
END;
Valor de V_TOTAL:1
Valor de V_TOTAL:3
Valor de V_TOTAL:6
Valor de V_TOTAL:10
Valor de V_TOTAL:15
Valor de V_TOTAL:21
DECLARE
V_NUM NUMBER := 1;
BEGIN
WHILE V_NUM <= 13 LOOP
DBMS_OUTPUT.PUT_LINE('El valor V_NUM es :' || V_NUM);
V_NUM := V_NUM + 2.1;
END LOOP;
END;
El valor V_NUM es :1
El valor V_NUM es :3,1
El valor V_NUM es :5,2
El valor V_NUM es :7,3
El valor V_NUM es :9,4
El valor V_NUM es :11,5
BEGIN
FOR i IN 1..12 LOOP
DBMS_OUTPUT.PUT_LINE('7*' || i || '='|| (7*i));
END LOOP;
END;
7*1=7
7*2=14
7*3=21
7*4=28
7*5=35
7*6=42
7*7=49
7*8=56
7*9=63
7*10=70
7*11=77
7*12=84
Permite decidir por cuál alternativa seguirá el flujo del programa dependiendo del resultado de la evaluación de una condición.
Para establecer condiciones complejas se utilizan los operadores relacionales y lógicos.
Type in your birthdate.
DECLARE
V_TIPO_TRABAJADOR VARCHAR2(2) := 'AR';
V_SALARIO NUMBER;
V_TIENE_SALARIO BOOLEAN;
BEGIN
CASE
WHEN V_TIPO_TRABAJADOR = 'AP' THEN
V_SALARIO := 1500;
V_TIENE_SALARIO := TRUE;
WHEN V_TIPO_TRABAJADOR = 'AS' THEN
V_SALARIO := 2300;
V_TIENE_SALARIO := TRUE;
WHEN V_TIPO_TRABAJADOR = 'JP' THEN
V_SALARIO := 5000;
V_TIENE_SALARIO := TRUE;
ELSE
V_TIENE_SALARIO := FALSE;
END CASE;
IF V_TIENE_SALARIO THEN
DBMS_OUTPUT.PUT_LINE('El salario de un ' || V_TIPO_TRABAJADOR
|| ' es ' || V_SALARIO);
ELSE
DBMS_OUTPUT.PUT_LINE(V_TIPO_TRABAJADOR
|| ' no tiene un salario definido');
END IF;
END;
AR no tiene un salario definido
Type in your age.
La condición se especifica en la cláusula IF, en caso de que la condición sea verdadera se ejecuta el bloque de código especificado bajo la cláusula THEN, en caso contrario se ejecuta el bloque de código especificado en la cláusula ELSE. La claúsula ELSE es opcional
DECLARE
/*Para poder ver la utilidad de éste script
basta con cambiar los valores de las variables
V_A y V_B según queramos. */
V_A NUMBER := 30;
V_B NUMBER := 30;
BEGIN
/*En caso de que la variable V_A sea mayor
se mostrará un mensaje*/
IF V_A > V_B THEN
dbms_output.put_line('V_A es mayor');
ELSE
dbms_output.put_line('V_B es mayor o igual que V_A');
END IF;
END;
V_B es mayor o igual que V_A