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
Si se cumple condicion x se ejecuta codigo y, sino se ejecuta codigo z
``` IF (x) THEN -> y ELSE -> z END IF; ```
26
Si se cumple condicion x se ejecuta codigo y, sino si se cumple condicion z se ejecuta codigo w, sino se ejecuta codigo u
``` IF (x) THEN -> y ELSIF (z) THEN -> w ELSE -> u END IF; ```
27
Crear bucle infinito que ejecute codigo x
LOOP -> x END LOOP;
28
Crear bucle con salida tras codigo x
LOOP -> x -> EXIT; END LOOP;
29
Crear bucle con salida con condicion x que ejecute codigo y
LOOP -> y -> EXIT WHEN (x); END LOOP;
30
Crear bucle que ejecute codigo x mientras se cumpla condicion y
WHILE (y) LOOP -> x END LOOP;
31
Crear bucle iterando contador i en un rango n m que ejecute codigo x
FOR i IN n..m LOOP -> x END LOOP;
32
Crear bucle iterando contador i al reves en un rango n m que ejecute codigo x
FOR i IN REVERSE n..m LOOP -> x END LOOP;
33
Capturar excepcion x y manejarla con codigo y, otras excepciones manejarlas con codigo z
WHEN x THEN -> y WHEN OTHERS THEN -> z
34
Declarar una excepcion x
DECLARE | -> x EXCEPTION;
35
Lanzar excepcion x
RAISE x;
36
Comando para lanzar mensajes de excepcion
RAISE_APPLICATION_ERROR(?)
37
Asignar excepcion x a codigo de excepcion predeterminado y
PRAGMA_INIT(x, y);
38
Crear tipo complejo registro x con campos y z
TYPE x IS RECORD (y, z);
39
Declarar variable campo x a partir de campo y tipo de dato z valor w
x := y z := w;
40
Acceder a campo x de variable y tipo complejo registro
y.x
41
Crear tipo complejo array de longitud variable x de tamaño maximo n de tipos y
TYPE x IS VARRAY (n) OF y;
42
Inicializar varray x tipo varray y con constructor vacío
x y := y();
43
Acceder a elemento n de varray x
x(n)
44
Extender en n elementos x longitud del varray o tabla y
y.EXTEND(n, x);
45
Obtener numero de elementos del varray o tabla x
x.COUNT
46
Obtener tamaño maximo del varray x
x.LIMIT
47
Crear tipo complejo tabla anidada x de tipos y
TYPE x IS TABLE OF y [NOT NULL];
48
Obtener booleano si elemento x de tabla anidada y existe
y.EXISTS(n)
49
Borrar n elementos al final de una tabla anidada x
x.TRIM(n)
50
Borrar elemento del n al m de una tabla anidada x
x.DELETE(n, m)
51
Cuando un cursor se declara implicito
cuando una consulta SQL solo devuelve 1 fila (y para cada sentencia DML SQL)
52
Devoluciones de cursor x%ISOPEN
TRUE despues de OPEN antes de CLOSE | FALSE en cualquier otra situacion
53
Devoluciones de cursor x%FOUND
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
Devoluciones de cursor x%NOTFOUND
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
Devoluciones de cursor x%ROWCOUNT
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
Declarar cursor explicito x, parametro a tipo y = n por defecto, devuelve tipo fila de la tabla z, con consulta w
CURSOR x (a y DEFAULT n) RETURN z%ROWTYPE IS w;
57
Abrir cursor x, parametro n
OPEN x (n);
58
Obtener siguiente fila del conjunto resultado del cursor x en las variables a b c d
FETCH x INTO a, b, c, d;
59
Cerrar cursor x
CLOSE x;
60
Recorrer cursor x con bucles para cursores
FOR x_rec IN x LOOP --procesar las filas accediendo a x_rec.y ... END LOOP;
61
Definir disparador/trigger x momento y acontecimiento z, de la tabla w
CREATE TRIGGER x y z ON w FOR EACH ROW [bloque_PL/SQL];
62
Tipos de momentos en disparadores
BEFORE | AFTER
63
Tipos de acontecimientos en disparadores
INSERT DELETE UPDATE
64
Definir disparador/trigger x momento y acontecimiento z, de la tabla w, disparadores para filas con alias, con condicion u
``` 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
Declarar subprograma funcion x, con parametro a tipo y, que devuelve tipo de dato z, declaraciones locales w
``` FUNCTION x (a y) RETURN z IS w BEGIN [...] END [x]; ```
66
Declarar subprograma procedimiento x, con parametro a tipo y, declaraciones locales z
``` PROCEDURE x (a y) IS z BEGIN [...] END [x]; ```
67
Almacenar subprograma x en base de datos
CREATE OR REPLACE (x...) /
68
Llamar a subprograma x con parametro a
x(a)
69
Crear paquete x
``` 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
Llamar a subprograma x con parametro a del paquete y
y.x(a)
71
Declarar objeto x con parametros y tipo z, parametro w tipo u
CREATE OBJECT x AS OBJECT ( -> y z, -> w u, );
72
Crear clase de objeto x con parametros y tipo z, funcion miembro w que devuelve tipo u
``` 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
Crear funcion miembro mapa x que devuelva tipo y
MAP MEMBER FUNCTION x RETURN y
74
Crear funcion miembro orden x, con parametro y tipo objeto z
ORDER MEMBER FUNCTION x (y z) RETURN INTEGER y IN z?
75
Eliminar tipo de objeto (clase) x
DROP TYPE x;
76
Eliminar atributo x de clase y
ALTER TYPE y DROP ATTRIBUTE x;
77
Añadir a la clase x, atributo y tipo z, atributo w tipo u
ALTER TYPE x ADD ATTRIBUTE (y z, w u);
78
Modificar atributo x a tipo y, de la clase z
ALTER TYPE z MODIFY ATTRIBUTE x y;
79
Asignar valor de variable x a atributo x del propio objeto instanciado
SELF.x := x;
80
Constructor x con parametros y z, u w
CONSTRUCTOR FUNCTION x(y z, u w) | -> RETURN SELF AS RESULT
81
Declarar variable x de objeto y, construirlo con argumentos z w
x y := NEW Y(z, w);
82
Declarar procedimiento x con parametro y tipo objeto z
PROCEDURE x (y IN z)
83
Acceder a atributo x del objeto y
y.x
84
Llamar a metodo x del objeto y con argumentos z w
y.x(z, w);
85
Llamar a metodo estatico x del tipo de objeto y
y.x();
86
Crear tipo de objeto x heredado de tipo de objeto y
CREATE TYPE x AS OBJECT UNDER y ( -> (...) );
87
Crear tipo de objeto x del cual se hereda
CREATE TYPE x AS OBJECT ( -> (...) ) NOT FINAL;
88
Crear tipo complejo tabla anidada x de tamaño maximo n de tipos y
TYPE x IS TABLE OF y;
89
Crear tabla de objetos x de tipo de objeto y
CREATE TABLE x OF y;