PL/SQL Flashcards

1
Q

Definir identificador x*!

A

“x*!”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Literal cadena x

A

‘x’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Comentario x de una linea

A

–x

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Comentario x de varias lineas

A
/* x
*/
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Tipo de dato racional

A

NUMBER

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Tipo de dato integer para operaciones rapidas

A

PLS_INTEGER

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tipo de dato array de n char

A

CHAR(n)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tipo de dato array de char grande

A

LONG

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Tipo de dato array de bytes pequeño

A

RAW

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Tipo de dato array de bytes grande

A

LONG RAW

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Tipo de dato cadena de longitud variable

A

VARCHAR2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Tipo de dato puntero a fichero

A

BFILE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Tipo de dato objeto binario 4gb

A

BLOB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Tipo de dato objeto caracter 2gb

A

CLOB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Tipo de dato booleano

A

BOOLEAN

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Tipo de dato fecha

A

DATE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Crear subtipo de dato x a partir de y

A

SUBTYPE x IS y;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Obtener tipo de dato de columna x de tabla y

A

y.x%TYPE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Obtener tipo de dato de cursor o table x

A

x%ROWTYPE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Crear subtipo de dato x a partir de tipo restringido y(n) auxiliar z

A
z y(n);
SUBTYPE x IS z%TYPE;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Crear variable x tipo de dato constante y asignar valor n

A

x CONSTANT y := n;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Crear variable x tipo de dato y no nulo y asignar valor n

A

x y NOT NULL := n;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Bloque estandar PL/SQL

A
DECLARE
-> (...)
BEGIN
-> (...)
EXCEPTION
-> (...)
END;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Si se cumple condicion x se ejecuta codigo y

A

IF (x) THEN
-> y
END IF;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Si se cumple condicion x se ejecuta codigo y, sino se ejecuta codigo z

A
IF (x) THEN
-> y
ELSE
-> z
END IF;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Si se cumple condicion x se ejecuta codigo y, sino si se cumple condicion z se ejecuta codigo w, sino se ejecuta codigo u

A
IF (x) THEN
-> y
ELSIF (z) THEN
-> w
ELSE
-> u
END IF;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Crear bucle infinito que ejecute codigo x

A

LOOP
-> x
END LOOP;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Crear bucle con salida tras codigo x

A

LOOP
-> x
-> EXIT;
END LOOP;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Crear bucle con salida con condicion x que ejecute codigo y

A

LOOP
-> y
-> EXIT WHEN (x);
END LOOP;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Crear bucle que ejecute codigo x mientras se cumpla condicion y

A

WHILE (y) LOOP
-> x
END LOOP;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Crear bucle iterando contador i en un rango n m que ejecute codigo x

A

FOR i IN n..m LOOP
-> x
END LOOP;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Crear bucle iterando contador i al reves en un rango n m que ejecute codigo x

A

FOR i IN REVERSE n..m LOOP
-> x
END LOOP;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Capturar excepcion x y manejarla con codigo y, otras excepciones manejarlas con codigo z

A

WHEN x THEN
-> y
WHEN OTHERS THEN
-> z

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Declarar una excepcion x

A

DECLARE

-> x EXCEPTION;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Lanzar excepcion x

A

RAISE x;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Comando para lanzar mensajes de excepcion

A

RAISE_APPLICATION_ERROR(?)

37
Q

Asignar excepcion x a codigo de excepcion predeterminado y

A

PRAGMA_INIT(x, y);

38
Q

Crear tipo complejo registro x con campos y z

A

TYPE x IS RECORD (y, z);

39
Q

Declarar variable campo x a partir de campo y tipo de dato z valor w

A

x := y z := w;

40
Q

Acceder a campo x de variable y tipo complejo registro

A

y.x

41
Q

Crear tipo complejo array de longitud variable x de tamaño maximo n de tipos y

A

TYPE x IS VARRAY (n) OF y;

42
Q

Inicializar varray x tipo varray y con constructor vacío

A

x y := y();

43
Q

Acceder a elemento n de varray x

A

x(n)

44
Q

Extender en n elementos x longitud del varray o tabla y

A

y.EXTEND(n, x);

45
Q

Obtener numero de elementos del varray o tabla x

A

x.COUNT

46
Q

Obtener tamaño maximo del varray x

A

x.LIMIT

47
Q

Crear tipo complejo tabla anidada x de tipos y

A

TYPE x IS TABLE OF y [NOT NULL];

48
Q

Obtener booleano si elemento x de tabla anidada y existe

A

y.EXISTS(n)

49
Q

Borrar n elementos al final de una tabla anidada x

A

x.TRIM(n)

50
Q

Borrar elemento del n al m de una tabla anidada x

A

x.DELETE(n, m)

51
Q

Cuando un cursor se declara implicito

A

cuando una consulta SQL solo devuelve 1 fila (y para cada sentencia DML SQL)

52
Q

Devoluciones de cursor x%ISOPEN

A

TRUE despues de OPEN antes de CLOSE

FALSE en cualquier otra situacion

53
Q

Devoluciones de cursor x%FOUND

A

NULL antes del primer FETCH
TRUE despues de primer FETCH antes del ultimo FETCH
FALSE despues del ultimo FETCH
Exception si %ISOPEN es FALSE

54
Q

Devoluciones de cursor x%NOTFOUND

A

NULL antes del primer FETCH
FALSE despues de primer FETCH antes del ultimo FETCH
TRUE despues del ultimo FETCH
Exception si %ISOPEN es FALSE

55
Q

Devoluciones de cursor x%ROWCOUNT

A

0 antes del primer FETCH
1 despues de primer FETCH antes de los siguientes FETCH
Exception si %ISOPEN es FALSE
Depende de datos las demas situaciones

56
Q

Declarar cursor explicito x, parametro a tipo y = n por defecto, devuelve tipo fila de la tabla z, con consulta w

A

CURSOR x (a y DEFAULT n) RETURN z%ROWTYPE IS w;

57
Q

Abrir cursor x, parametro n

A

OPEN x (n);

58
Q

Obtener siguiente fila del conjunto resultado del cursor x en las variables a b c d

A

FETCH x INTO a, b, c, d;

59
Q

Cerrar cursor x

A

CLOSE x;

60
Q

Recorrer cursor x con bucles para cursores

A

FOR x_rec IN x LOOP
–procesar las filas accediendo a x_rec.y …
END LOOP;

61
Q

Definir disparador/trigger x momento y acontecimiento z, de la tabla w

A

CREATE TRIGGER x
y z ON w
FOR EACH ROW
[bloque_PL/SQL];

62
Q

Tipos de momentos en disparadores

A

BEFORE

AFTER

63
Q

Tipos de acontecimientos en disparadores

A

INSERT
DELETE
UPDATE

64
Q

Definir disparador/trigger x momento y acontecimiento z, de la tabla w, disparadores para filas con alias, con condicion u

A
CREATE TRIGGER x
y z ON w
REFERENCING (old AS alias_old | new AS alias_new)
FOR EACH ROW
WHEN u
[bloque_PL/SQL];
65
Q

Declarar subprograma funcion x, con parametro a tipo y, que devuelve tipo de dato z, declaraciones locales w

A
FUNCTION x (a y)
RETURN z IS w
BEGIN
[...]
END [x];
66
Q

Declarar subprograma procedimiento x, con parametro a tipo y, declaraciones locales z

A
PROCEDURE x (a y)
IS z
BEGIN
[...]
END [x];
67
Q

Almacenar subprograma x en base de datos

A

CREATE OR REPLACE
(x…)
/

68
Q

Llamar a subprograma x con parametro a

A

x(a)

69
Q

Crear paquete x

A
CREATE PACKAGE x AS 
-> declaraciones publicas, especificacion subprogramas
END x;
CREATE PACKAGE BODY x AS
-> declaraciones privadas, cuerpo subprogramas
BEGIN
-> sentencias inicializacion
END x;
70
Q

Llamar a subprograma x con parametro a del paquete y

A

y.x(a)

71
Q

Declarar objeto x con parametros y tipo z, parametro w tipo u

A

CREATE OBJECT x AS OBJECT (
-> y z,
-> w u,
);

72
Q

Crear clase de objeto x con parametros y tipo z, funcion miembro w que devuelve tipo u

A
CREATE TYPE x AS OBJECT (
-> y z,
-> MEMBER FUNCTION w RETURN u,
);
CREATE TYPE BODY x AS
-> MEMBER FUNCTION w RETURN u IS
-> BEGIN
-> -> (sentencias + RETURN);
-> END;
END;
73
Q

Crear funcion miembro mapa x que devuelva tipo y

A

MAP MEMBER FUNCTION x RETURN y

74
Q

Crear funcion miembro orden x, con parametro y tipo objeto z

A

ORDER MEMBER FUNCTION x (y z) RETURN INTEGER

y IN z?

75
Q

Eliminar tipo de objeto (clase) x

A

DROP TYPE x;

76
Q

Eliminar atributo x de clase y

A

ALTER TYPE y DROP ATTRIBUTE x;

77
Q

Añadir a la clase x, atributo y tipo z, atributo w tipo u

A

ALTER TYPE x ADD ATTRIBUTE (y z, w u);

78
Q

Modificar atributo x a tipo y, de la clase z

A

ALTER TYPE z MODIFY ATTRIBUTE x y;

79
Q

Asignar valor de variable x a atributo x del propio objeto instanciado

A

SELF.x := x;

80
Q

Constructor x con parametros y z, u w

A

CONSTRUCTOR FUNCTION x(y z, u w)

-> RETURN SELF AS RESULT

81
Q

Declarar variable x de objeto y, construirlo con argumentos z w

A

x y := NEW Y(z, w);

82
Q

Declarar procedimiento x con parametro y tipo objeto z

A

PROCEDURE x (y IN z)

83
Q

Acceder a atributo x del objeto y

A

y.x

84
Q

Llamar a metodo x del objeto y con argumentos z w

A

y.x(z, w);

85
Q

Llamar a metodo estatico x del tipo de objeto y

A

y.x();

86
Q

Crear tipo de objeto x heredado de tipo de objeto y

A

CREATE TYPE x AS OBJECT UNDER y (
-> (…)
);

87
Q

Crear tipo de objeto x del cual se hereda

A

CREATE TYPE x AS OBJECT (
-> (…)
) NOT FINAL;

88
Q

Crear tipo complejo tabla anidada x de tamaño maximo n de tipos y

A

TYPE x IS TABLE OF y;

89
Q

Crear tabla de objetos x de tipo de objeto y

A

CREATE TABLE x OF y;