door Mikaela Sandoval 1 jaar geleden
84
Meer zoals dit
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