26 videos 📅 2024-02-06 09:00:00 America/Bahia_Banderas
9:42
2024-02-06 10:11:16
6:47
2024-02-06 10:22:16
5:15
2024-02-06 10:31:49
3:57
2024-02-06 10:38:48
17:59
2024-02-06 10:43:27
1:06
2024-02-06 11:12:41
10:20
2024-02-06 11:15:29
2:42
2024-02-06 11:26:39
11:03
2024-02-06 12:01:53
1:16
2024-02-06 12:14:47
42:32
2024-02-06 12:19:55
10:32
2024-02-07 10:25:03
4:02
2024-02-07 10:39:09
1:54:16
2024-02-07 10:45:07
2:11:58
2024-02-07 20:24:23
11:55
2024-02-08 10:29:34
15:14
2024-02-08 10:43:38
3:39
2024-02-08 11:02:01
1:28:10
2024-02-08 11:14:14
1:31:21
2024-02-08 21:37:16
2:33:55
2024-02-09 09:35:00
15:39
2024-02-09 12:49:52
1:17:31
2024-02-12 09:26:50
36:07
2024-02-12 10:56:05
8:43
2024-02-13 12:48:13
3:05
2024-02-14 10:23:00

Visit the Oracle Database 19c: Administration course recordings page

United Arab Emirates - Oracle Database 19c Security

                WEBVTT

00:00:00.000 --> 00:00:08.400
listo, entonces ya todos tienen el comando y demás, bien, entonces a ver ya también

00:00:08.400 --> 00:00:15.500
puse el pomodoro, vamos a hacer una pequeña, pues no práctica, es un ejercicio nada más

00:00:15.500 --> 00:00:25.820
como para que quede un poquito ya más cerrado este tema, sale, vamos a hacer este, vamos

00:00:25.820 --> 00:00:32.100
a hacer un ejercicio, vamos a poner aquí los digamos las instrucciones y básicamente

00:00:32.100 --> 00:00:40.920
vamos a hacer igual, el objetivo es hacer un audit, este, se tiene que registrar sobre

00:00:40.920 --> 00:00:48.260
la misma tabla que estamos usando, que se llama, ahí donde está la tabla, acá está,

00:00:48.260 --> 00:00:58.300
DDL audit, vamos a registrar ahí en esa misma tabla, sobre, pero cuando se haga un comando

00:00:58.300 --> 00:01:07.040
de manipulación, un DML, vamos a ver si eso funciona, cuando se haga un DML sobre

00:01:07.040 --> 00:01:18.880
la misma base de datos, este, vamos a ejecutar el trigger, vamos a crear un nuevo trigger,

00:01:19.600 --> 00:01:27.940
va, el trigger se debe de llamar así, pero nada más aquí, DML, va, entonces ese audit

00:01:27.940 --> 00:01:36.460
DML lo que debe hacer es que después de que se ejecute un DML, podemos insertar

00:01:36.460 --> 00:01:44.320
sobre esta misma tabla de audit el registro, va, después del trigger hacemos un ejemplo

00:01:44.900 --> 00:01:54.540
y es que se ve ahí como un registro, sale, entonces no sé si tengan alguna duda con

00:01:54.540 --> 00:02:01.760
lo que hay que hacer, va, entonces adelante, ahí lo vamos haciendo y si alguien necesita

00:02:01.760 --> 00:02:07.960
ayuda, me avisa, yo aquí voy a estar monitoreando y lo vamos viendo, va, adelante, sí, Síjaro,

00:02:08.160 --> 00:02:17.720
dime, crear uno nuevo, correcto, sí, correcto, como va a auditar en la misma tabla, los

00:02:17.720 --> 00:02:23.360
campos deben ser los mismos, vamos a ocupar la misma tabla, lo que va a cambiar es un

00:02:23.560 --> 00:02:32.620
poquito el disparador, aquí en este ejemplo ustedes son libres de ocupar Google para

00:02:32.620 --> 00:02:38.080
por si necesitan, o sea, lo que hay que ver, lo que hay que investigar es como un

00:02:38.080 --> 00:02:45.500
poquito tarea de investigación, cómo crear este disparador, este disparador actúa

00:02:45.500 --> 00:02:52.140
sobre los DDL, lo que necesitamos hacer es que se haga pero a través de los comandos

00:02:52.140 --> 00:02:58.920
del tipo DML, ahorita vamos a dar todos la respuesta pero nada más es como para que

00:02:58.920 --> 00:03:05.480
podamos irnos metiendo más como en el mundo del tema del trigger, aquí pueden hacer

00:03:05.480 --> 00:03:12.640
uso de internet, de Google para más que nada es ir buscando cómo disparar el trigger,

00:03:14.640 --> 00:03:20.420
y de todos modos yo ahorita ya voy agregando en la presentación la solución, va, para

00:03:21.280 --> 00:03:33.120
adelante quien lo habló, me habló Harold, correcto, esa es una muy buena pregunta, es

00:03:33.120 --> 00:03:42.600
este, ahí el trigger, el trigger de DML que nosotros hicimos, perdóname, el de DDL,

00:03:42.640 --> 00:03:47.380
de definición, es un trigger que se puede definir a nivel global, ya no estoy compartiendo

00:03:47.980 --> 00:03:56.060
este, bueno es que ahorita voy a juntar ya la solución, pero bueno, a ver, voy a abrir

00:03:56.060 --> 00:04:02.460
rápidamente el IDE para no, no este, es que le puse el Mute porque hay música aquí ahorita,

00:04:03.580 --> 00:04:09.160
pero bueno, a ver este trigger que nosotros hicimos, si se fijan el disparador es la

00:04:09.160 --> 00:04:15.520
clave, en este caso estamos haciendo un trigger y por los comandos DDL se puede

00:04:15.520 --> 00:04:20.880
hacer a nivel global, no, a nivel global sobre la base de datos cada vez que nosotros

00:04:20.880 --> 00:04:30.400
encontremos un comando, más bien una instrucción SQL de este tipo, se va a disparar, como bien

00:04:30.400 --> 00:04:38.700
pregunta Harold, para un comando de DML esto no existe, no, un comando de DML es un comando

00:04:38.700 --> 00:04:45.960
de manipulación de información, por ejemplo puedo hacer un insert, un select, un update,

00:04:46.000 --> 00:04:55.240
un delete, eso es DML, comandos de manipulación de información, entonces esos comandos no

00:04:55.240 --> 00:05:01.340
se pueden aplicar a nivel general porque, digamos que los triggers se tendrían que

00:05:01.340 --> 00:05:07.340
ejecutar sobre cada operación en específico, entonces aquí ustedes haciéndose el labor

00:05:07.340 --> 00:05:12.480
de investigación podrían preguntar qué tipo de trigger quieres que hagamos, pueden hacer un

00:05:12.480 --> 00:05:19.000
insert, un update, un delete, Harold, por ejemplo, tú podrías crear un disparador sobre

00:05:19.000 --> 00:05:25.900
la tabla de empleados, exactamente como lo dijiste, sobre la tabla de empleados para que

00:05:25.900 --> 00:05:32.320
cuando se haga un insert en esa tabla, aquí hay que configurar ese disparador para que cuando

00:05:32.320 --> 00:05:39.280
se haga un insert sobre empleados, este, se registre el valor de ese insert en nuestra

00:05:39.280 --> 00:05:48.760
tabla de audit, va, o puedes crear otra tabla si quieres, puedes crear una tabla diferente

00:05:48.760 --> 00:05:54.880
de audit en donde puedas guardar la información, es lo de menos, lo que me interesa es

00:05:54.880 --> 00:06:06.920
que hayan deducido del trigger que se aplica a nivel operación, vaya, entonces, si quieren

00:06:06.920 --> 00:06:14.320
ahorita damos unos 5 minutos más, bueno, damos 10 minutos, 11.38 y si no, ya ponemos la,

00:06:15.260 --> 00:06:20.320
o sea, todos nos la vamos a poner, la solución aquí en el, de hecho, ya lo estaba por agrega,

00:06:20.320 --> 00:06:31.260
acá, acá, entonces, sí, más o menos me expliqué, lo que, lo que vamos a hacer,

00:06:34.440 --> 00:06:40.180
hacia qué tal, sí, sí, puedes hacerlo en la tabla que quieras, este, yo preferiría que

00:06:40.180 --> 00:06:44.840
fuera aquí, pero como tú, o sea, al final el objetivo nada más es que insertes y se

00:06:44.840 --> 00:06:48.600
dispare un trigger, si lo quieres guardar en esta tabla, está bien, si quieres crear una

00:06:48.700 --> 00:06:57.120
tabla con tus campos personalizados también está bien, no, no hay tema, va, sí, sí, gracias a ti.

00:08:14.360 --> 00:08:16.160
Dime, dime color.

00:08:18.580 --> 00:08:37.640
Ok, a ver, dónde está, Jharol, acá estás, Jharol, sí, aquí en este caso tú elegiste

00:08:37.640 --> 00:08:48.060
crear un trigger de inserción, actualización o borrado, ok, hay un, hay un mecanismo,

00:08:48.100 --> 00:08:57.440
digamos, cuando estamos haciendo el trigger, que nos permite obtener, ya sea un, si estás

00:08:57.440 --> 00:09:03.960
haciendo, por ejemplo, un insert, hay un objeto que se llama new, para acceder

00:09:03.960 --> 00:09:09.680
al objeto que se está creando, si estamos, salud, si estamos haciendo, salud, salud,

00:09:10.120 --> 00:09:16.160
si estamos haciendo un borrado el objeto es un old y demás, no, entonces, este, aquí

00:09:16.160 --> 00:09:23.280
tendríamos que, mira, si tú hiciste ese after insert, ese trigger de ml ya lo creaste

00:09:23.280 --> 00:09:42.360
y si funcionó, ok, ok, sale, bueno, a ver, ahí el problema que estoy viendo es que

00:09:43.580 --> 00:09:50.580
SDDL, el tipo y el nombre, ahí no los puedes declarar de esa forma, este, tendrías

00:09:50.580 --> 00:09:56.340
que ponerlos en fijo, ahorita lo que podrías hacer es borrar, ah, bueno, creo que con

00:09:56.340 --> 00:10:01.200
el create or replace se va a eliminar, ahí tú directamente podrías ponerle en el

00:10:01.200 --> 00:10:07.040
tipo insert haciendo, por eso les decía que es como muy, muy particular cada tarea,

00:10:07.160 --> 00:10:13.520
si vas a hacer un insert, ahí tendrías que ponerle en el tipo un insert, ahí

00:10:13.520 --> 00:10:18.040
en el owner, ahí más bien tendrías que poner la palabra user, escribe user,

00:10:18.040 --> 00:10:22.760
porfa, no, no, no, así es como palabra reservada, mayúsculas, si quieres,

00:10:22.920 --> 00:10:29.700
en comillas, o así, así, ahí en vez del type, ahí si ya tendrías que poner entre

00:10:29.700 --> 00:10:36.800
comillas el tipo de tarea, en este caso puedes poner el insert, este,

00:10:41.700 --> 00:10:47.500
ahá, entre comillas, exacto, insert, y en el otro, igual entre comillas, pones

00:10:47.500 --> 00:10:53.140
por ejemplo el nombre de la tabla, empleados, employees, employee, ah, exacto, ahora,

00:10:53.560 --> 00:10:58.200
yo te recomiendo que hagas un trigger por cada operación, es decir, pongas este

00:10:58.900 --> 00:11:06.320
after insert on, empleados, si quieres hacer otro trigger, no, no, o sea, me

00:11:06.320 --> 00:11:10.600
refiero, ah, no, sí, ahí estás bien, pero me refiero más bien hasta, hasta

00:11:10.600 --> 00:11:17.960
arriba, donde dice after insert or update, ahí lo cambies a solamente after insert,

00:11:19.360 --> 00:11:24.140
y así ya no te queda tan, delegas, no, las, las responsabilidades, entonces

00:11:24.140 --> 00:11:27.520
puede, prueba, dímelo, sí,

00:11:31.600 --> 00:11:35.440
sí, sí, claro, sí, sí lo puedes hacer, alguna

00:11:35.440 --> 00:11:42.260
condicional, se me ocurre por ejemplo utilizar los, los objetos de, te digo,

00:11:42.440 --> 00:11:48.780
los new, los delete, los, más bien es objeto new y yo creo, sí, no más recuerdo,

00:11:48.880 --> 00:11:53.860
sí, esos dos, ahorita te los muestro, mira, te los voy a pasar por acá,

00:11:56.080 --> 00:12:03.380
Bueno, mira, yo ahorita voy a poner un ejemplo y ahí lo escribimos. Esos identificadores

00:12:03.980 --> 00:12:08.880
le dicen al trigger que se está ejecutando. Si es un new, es un insert. Podrías poner

00:12:08.880 --> 00:12:15.320
ahí un case y demás, ¿no? Digamos un condicional. Yo la verdad recomiendo mejor hacerlo así

00:12:15.320 --> 00:12:21.160
para no tener un trigger así grande y más bien tener triggers en específico de

00:12:21.940 --> 00:12:28.580
actualizado, de borrado y delegues la responsabilidad, ¿no? Si en este caso tú lo pondrías sobre

00:12:28.580 --> 00:12:34.680
la tabla que digamos las que quieras auditar. Hay veces que no todas se auditan. Por ejemplo,

00:12:34.900 --> 00:12:41.600
catálogos pues no tendría como mucho sentido auditar, ¿no? Pero sí a lo mejor. Dime,

00:12:41.820 --> 00:12:48.440
exacto. Sí, digamos, sobre todo son tus tablas que sean más como recurrentes, ¿no?

00:12:48.440 --> 00:12:54.860
Donde manejas información y demás. Entonces, este sí, es más como para eso y precisamente

00:12:54.860 --> 00:12:59.080
pues te da la flexibilidad de hacerlo sobre una tabla en específico.

00:13:12.720 --> 00:13:16.520
Exacto, exacto. Eso que mencionas lo hace,

00:13:17.320 --> 00:13:21.360
creo que alguien me había dicho que aquí es el administrador o algo así, ¿no? Como de

00:13:21.360 --> 00:13:30.080
infraestructura y demás. Hace tareas de ese tipo, ¿no? Hacen tareas como de se llenó la base,

00:13:30.360 --> 00:13:37.580
hay que depurar. Ahí es más como tarea de administradores, ¿no? Pero sí, eso es lo que

00:13:37.580 --> 00:13:43.720
se hace por atrás, digamos. Alguien está monitoreando los logs, los registros, está

00:13:43.720 --> 00:13:49.440
viendo qué tanto se llenó la información, la base de datos, cómo está, y pues van, van depurando.

00:13:52.120 --> 00:14:00.520
Bien, entonces, perfecto. Si quieres darle la, la, o sea, reemplaza tu trigger y lo vas a este,

00:14:01.500 --> 00:14:09.520
lo pruebas, ¿no? Haces otro insert y ya te debe de de mapear otro, otro registro. Va,

00:14:09.520 --> 00:14:17.260
entonces, este, perfecto. Bien, entonces, Harald, gracias por, por este, por dar retro. Entonces,

00:14:17.340 --> 00:14:26.940
voy a compartir pantalla, sale, y por ahí voy a ir este, no me dejo que se quite esta barra,

00:14:27.400 --> 00:14:36.740
que choca. A ver, entonces, este, que no se quita. Ahí está. A ver, vamos a ir escribiéndolo

00:14:36.740 --> 00:14:46.620
entre, entre todos, a ver qué onda, ¿no? Mira, aquí en la base, este, pues había muchas

00:14:46.620 --> 00:14:54.180
formas de abordar esto, ¿no? Podríamos, este, ocupar la misma, la misma tabla, que es la que,

00:14:54.180 --> 00:15:00.720
la que yo les decía que se ocupara, la misma. Lo que teníamos que hacer es un nuevo trigger,

00:15:00.720 --> 00:15:08.000
o podíamos crear una nueva tabla, este, dependiendo de lo que quisiéramos nosotros,

00:15:08.000 --> 00:15:16.620
este, auditar, ¿no? Entonces, yo voy a hacer un ejemplo, este, poquito más, tal vez completo,

00:15:16.680 --> 00:15:22.960
como para que podamos, este, pues tenerlo ahí en la mano, ¿no? Para que lo podamos tener en la

00:15:22.960 --> 00:15:29.820
mano, y sobre todo, pues, que nos sirva de, de, este, de referencia. Entonces, este, lo que yo

00:15:29.820 --> 00:15:40.820
voy a hacer es, este, crear una, una nueva tabla, ¿sí? Que se llame, podemos ocupar el cuerpo de

00:15:40.820 --> 00:15:47.440
esta, y esto lo voy a ir haciendo aquí, como para que quede ahí en este video. Ah, nada

00:15:47.440 --> 00:15:58.260
más, voy a abrir un nuevo, una nueva, este, un nuevo editor, en blanco, ¿no? Para que pueda

00:15:58.260 --> 00:16:06.300
agregar mejor las, este, los comandos. Entonces, aquí le voy a dar, en donde dice,

00:16:09.220 --> 00:16:16.240
y acá, worksheet, ahí está, y ya está mi, mi nueva sesión. Entonces, yo aquí le puedo dar pegar,

00:16:18.560 --> 00:16:26.700
¿sí? Voy a darle a un show user, para ver qué uso yo estoy, según yo debe ser HR, ahí está, bueno,

00:16:26.740 --> 00:16:31.820
entonces, continúo bien, no, no pasó nada. Entonces, voy a crear una nueva tabla, que

00:16:31.820 --> 00:16:38.780
probablemente nos va a ayudar que se llame, ahora, en vez de DDL, un DML. Ustedes lo pueden

00:16:38.780 --> 00:16:43.560
hacer en la misma, no, no había tema, pero ahorita, como, por ejemplo, que Harold mencionó,

00:16:43.620 --> 00:16:49.240
de cómo podríamos diferenciarlo, se me hace buena idea añadir un nuevo, un nuevo campo,

00:16:49.360 --> 00:16:53.000
entonces, pues, para eso vamos a agregar una nueva tabla, ¿no? Entonces, aquí el ID,

00:16:53.000 --> 00:16:59.020
pues, va a seguir usando una secuencia, vamos a llamarle aquí, en vez de DDL,

00:16:59.020 --> 00:17:06.640
pues, un DML, el username, el DML type, sale el nombre de objeto, ahí también se lo podemos

00:17:06.640 --> 00:17:15.160
usar, y vamos a crear un nuevo, una nueva columna, que le vamos a llamar a esta, por ejemplo,

00:17:15.980 --> 00:17:22.100
values, o creo que values es una palabra reservada, mejor new values, ¿no? Por ejemplo,

00:17:24.590 --> 00:17:31.150
new values, así, para que no haya problemas, y aquí le vamos a poner, por ejemplo, unos que les

00:17:31.150 --> 00:17:38.890
gustan, esta sí va a tener un poquito más de info, unos 250, por cualquier cosa. Si están

00:17:38.890 --> 00:17:51.590
viendo mi pantalla, ¿verdad? Según yo sí. Ah, perfecto. Va, entonces, ¿qué más dice aquí

00:17:51.590 --> 00:17:58.350
la secuencia de nuestro tutorial que ya hicimos? Básicamente, ah, otra secuencia, vamos a crearla

00:17:58.350 --> 00:18:07.310
como para que no se, ah, discúlpenme, gracias, Leon, por la aclaración, este, excelente. Sí,

00:18:07.670 --> 00:18:13.470
bueno, aquí decía, ya creamos la, si me escucharon cuando creé esta tabla, creo que

00:18:13.470 --> 00:18:20.370
sí, ¿verdad? Ah, ah, perfecto. Va, entonces, lo siguiente es crear otra secuencia, ocuparíamos

00:18:20.370 --> 00:18:26.370
otra como para que no se cruce con la secuencia del DDL, y pues se crucen ahí los cables, ¿no?

00:18:26.630 --> 00:18:31.090
Pero, pero bueno, realmente ahí es como ustedes lo quieran manejar, si quieren ocupar la misma,

00:18:31.690 --> 00:18:35.930
está bien, ¿no? Nada más que cuando se inserten registros y cuando se hagan

00:18:35.930 --> 00:18:40.770
actualizaciones, pues la secuencia va a estar combinando ahí, por eso yo voy a crear una

00:18:40.770 --> 00:18:45.990
nueva, y aparte, pues como es un ejemplo, no importa aquí ahorita el, tanto el espacio,

00:18:46.590 --> 00:18:55.510
¿sabes? Entonces voy a crear un DML Audit Sec, y después de esto, que nos dice el, a ver,

00:18:55.550 --> 00:19:01.830
voy a tratar de poner esto acá, a lo mejor ahí lo dejo, porque se va a hacer, este,

00:19:02.130 --> 00:19:08.350
se va a alentar el, el IDE, y después de esto, literal, ya ahora sí voy a poder

00:19:08.350 --> 00:19:12.970
hacer el trigger, ¿no? Entonces el trigger es el paso, digamos, tres, voy a copiármelo

00:19:12.970 --> 00:19:23.330
también para acá, y voy a decirle que haga un Create or Replace Trigger, en este caso mi trigger

00:19:23.330 --> 00:19:31.850
se va a llamar, este, HR Audit, pues vamos a ponerle un DML, pero aquí le puedo poner algo

00:19:31.850 --> 00:19:37.790
más, que se llame Insert, porque tenemos triggers, ya sean de inserción, de borrado,

00:19:39.530 --> 00:19:46.310
la condición, básicamente aquí éste era como el, lo que había que encontrar, que podemos hacerlo

00:19:46.310 --> 00:19:52.430
con un insert on, aquí ya va directamente no sobre la base de datos, sino más bien sobre la tabla

00:19:52.430 --> 00:20:06.430
en específico, en este caso yo voy a crearnos sobre la tabla de empleados, employees, HR.Employees,

00:20:06.430 --> 00:20:11.430
¿va? ¿Qué va a ser este disparador? Que cuando yo haga una inserción en esa tabla de empleados,

00:20:12.250 --> 00:20:17.710
haga lo que está dentro del cuerpo, ¿si? Entonces, ese, eso que está dentro del cuerpo va a ser

00:20:17.710 --> 00:20:24.990
literal un insert, pero lo va a insertar en esta tabla, ¿no? Aquí, aquí este, ustedes usaban

00:20:24.990 --> 00:20:30.450
este, porque yo les dije que hay que usar este, no había tema, nada más, yo lo estoy creando

00:20:30.450 --> 00:20:35.250
en una nueva tabla, por este valor, este valor difiere de la tabla que teníamos de

00:20:35.250 --> 00:20:44.050
DL, ¿va? Entonces, nada más es por eso. Entonces, aquí voy a poner el DML, la tabla, ¿si? Y le

00:20:44.050 --> 00:20:51.530
voy a decir los campos en el ID, aquí en ese, en este caso es el DML Date, el User, luego viene

00:20:51.530 --> 00:20:59.630
el DML Type, y luego viene el Object Name, y el último valor era el de, el que decíamos que

00:20:59.630 --> 00:21:09.170
vamos a agregar extra, que es el de New Values, ¿sale? Entonces, ahí se va a agregar un nuevo

00:21:09.170 --> 00:21:14.570
objeto. ¿Y qué valores vamos a agregar? Vamos a agregar, pues en primera instancia, nuestra

00:21:14.570 --> 00:21:22.030
secuencia, ¿no? Que en vez de ser DL, la cambiamos a DML, ahí nos va a ir agregando

00:21:22.180 --> 00:21:30.820
uno a uno, luego le voy a decir la fecha, esa se queda igual, aquí me va a decir quién es el

00:21:30.820 --> 00:21:36.220
Owner, aquí este, esta directiva no se puede usar porque literalmente no está actuando sobre

00:21:36.220 --> 00:21:42.300
un DML, aquí más bien yo voy a usar otra cosa que es de hecho este comando, que la salida,

00:21:42.480 --> 00:21:46.820
si se fijan cuando yo lo ejecuto, me dice quién es, es HR, entonces esto es lo que estaría

00:21:46.900 --> 00:21:51.740
pintando, ¿no? HR, nuestro usuario, más bien nuestro usuario en sección, quien se conecte,

00:21:53.800 --> 00:22:00.860
es quien va a estar este tomando ese valor y lo va a estar registrando. Aquí, muy en específico,

00:22:01.020 --> 00:22:06.460
Oracle, pues no tiene forma de acceder a la operación, pero como yo estoy sabiendo que es

00:22:06.460 --> 00:22:12.200
un insert, pues yo lo puedo poner ahí en duro, una instrucción que me haga decir,

00:22:12.200 --> 00:22:19.420
ah, es identificar, más que nada, ¿no? ¿Qué tabla? Pues mi tabla de empleados,

00:22:19.500 --> 00:22:29.520
entonces este le voy a, a ver, no se ejecutó él, parece que sí, no sé, no sé por qué es esto,

00:22:29.640 --> 00:22:36.780
bueno, lo voy a poner así, ¿no? Como para saber qué es sobre mi tabla de empleados y

00:22:36.780 --> 00:22:46.100
finalmente me pide un values, ese values es lo que podemos ocupar mientras nos vayamos metiendo

00:22:46.100 --> 00:22:53.840
más como al mundo de los triggers, ellos tienen, bueno, sí, para, para manejar triggers,

00:22:54.140 --> 00:23:00.480
este, esta, como decirlo, esta instruccióncita, que básicamente esto lo que hace referencia es

00:23:00.480 --> 00:23:07.100
al nuevo registro que está llegando al valor del, del insert, por así decirlo, ¿sale? Yo con

00:23:07.100 --> 00:23:14.640
utilizar esto puedo acceder a lo que es mi tabla empleados, entonces yo con utilizar new es como

00:23:14.640 --> 00:23:21.460
decir, el campo que venga new sobre la tabla de empleados y qué campos tiene mi tabla de

00:23:21.460 --> 00:23:28.700
empleados, acá los puedo revisar, por ejemplo, el empleado ID, yo puedo agregar, no sé,

00:23:28.700 --> 00:23:39.640
el empleado ID, en este caso, ¿no? Lo puedo cachar con escribir emploji y un bajo ID, literal

00:23:39.640 --> 00:23:47.460
ese es el campo, perdón, es el campo que aparece en mi, en mi tabla, ¿no? Entonces,

00:23:47.760 --> 00:23:53.400
esto básicamente sería el nuevo registro del empleado y el identificador, lo que se está

00:23:53.960 --> 00:24:00.200
insertando, ¿va? Yo aquí puedo utilizar el concatenado, así me salió, es, es, con ese

00:24:01.740 --> 00:24:07.220
doble pipe, este, ahora con concatena, y para no insertar tanto ahorita nada más voy a,

00:24:07.280 --> 00:24:12.280
o sea, la idea sería que un buen log pudieras agregar, este, todos los campos o pudieras

00:24:13.180 --> 00:24:18.820
decir algún texto, tal vez, ¿no? No sé, algo, ahí lo que venga en la imaginación,

00:24:18.820 --> 00:24:24.180
pero con esto yo puedo acceder, por ejemplo, al, vamos a ponerle al email, por ejemplo,

00:24:26.940 --> 00:24:34.340
dando a entender que se está agregando el email o cualquier campo que a ti te interesa,

00:24:34.500 --> 00:24:39.680
¿sale? Con esto debería de funcionar nuestro trigger, entonces vamos a hacerlo

00:24:39.680 --> 00:24:46.840
igual que en el otro paso a paso, aquí en este caso ya me dijo que creo el trigger audit

00:24:46.840 --> 00:24:54.640
de dml, vamos a crear el sequence también para generarlo y ya nos lo agregó y vamos a agregar,

00:24:54.640 --> 00:25:00.380
agregar perdón, el último paso que es el trigger, ¿va? Aquí nos dice que hay un

00:25:00.380 --> 00:25:07.360
problema nuevo o word no son permitidas a nivel de tabla, no permite triggers,

00:25:07.360 --> 00:25:14.480
accediendo a new values en la trámara, ok, remueve cualquier referencia, ok, mira,

00:25:14.480 --> 00:25:20.560
esto yo creo que tiene que ver con la tabla, con la versión de Oracle, a ver,

00:25:20.580 --> 00:25:26.400
¿qué podemos hacer aquí? Bueno, esto lo podríamos checar para que no se nos vaya

00:25:26.400 --> 00:25:34.700
ahorita mucho tiempo, voy a hacer un cambio, miren, esto lo puedo revisar después,

00:25:35.160 --> 00:25:40.940
lo voy a dejar aquí comentado como para que podamos este, checarlo y lo voy a revisar

00:25:41.540 --> 00:25:48.860
en la parte de cuando venga el pomodoro largo, entonces aquí mientras lo que podemos hacer es

00:25:49.800 --> 00:25:57.680
cerrar esto y ocupar el mismo insert sobre la tabla de la que teníamos antes, que es la de

00:25:57.680 --> 00:26:03.080
la que teníamos acá, para nada más llegar hasta registrar el object name, en este caso

00:26:03.080 --> 00:26:10.900
sería el DDL, ¿no? O sea, lo que quiero ahorita es que entre el disparador o rayos 15,

00:26:12.860 --> 00:26:20.780
a ver si aquí hay un deshacerse, a ver, lo voy a dar aquí a copiar y lo voy a llevar acá,

00:26:21.520 --> 00:26:27.500
entonces, si yo le pego, me voy a copiar este mismo valor,

00:26:30.320 --> 00:26:37.920
es que no sé por qué no me deja usar aquí adentro los los comandos de cortar y todo eso,

00:26:37.920 --> 00:26:45.120
pero bueno, no importa, esta de aquí, creo que el comentario es así, más bien sería un

00:26:45.120 --> 00:26:53.180
comentario de línea para, no es cierto, sí, sí, es este completo el comentario, a ver,

00:26:53.180 --> 00:27:00.100
ahí lo dejo así, lo agrego acá, y aquí en el cuerpo más bien voy a utilizar el mismo de acá,

00:27:02.780 --> 00:27:09.820
ah mira, de hecho ahí sí quería que funcionara este, ok, voy a decirle que lo agregué ahorita

00:27:09.820 --> 00:27:15.340
nada más como para que funcione el disparador sobre ese DDL y los values pues este sí lo

00:27:15.560 --> 00:27:22.480
voy a volver a ocupar, sigo aceptando que por eso quería apurarlo para que no me desgane el

00:27:22.480 --> 00:27:29.040
tiempo, a ver, ahorita ya vamos al pomodoro largo, aquí le doy pegar y también que me

00:27:29.040 --> 00:27:37.800
cache esto, no, entonces con esto, aquí nada más podríamos ocupar la secuencia del DDL,

00:27:38.300 --> 00:27:44.360
que es así me sirve, y aquí el owner, lo que decíamos, ese sí no va a poder funcionar,

00:27:44.360 --> 00:27:51.900
ahí tendremos que poner el usuario, y aquí muy en fijo podemos poner, pues literal estos dos

00:27:51.900 --> 00:28:05.060
valores, para que no los tenga que estar volviendo a escribir, hago un copiar y un pegar de esta

00:28:05.060 --> 00:28:14.260
información, y al hacer el pegado, ahí está, bueno, entonces voy a quitar, voy a comentar,

00:28:14.260 --> 00:28:19.520
bueno, no, ni siquiera comentar esto, ya lo puedo remover, ahorita vamos a hacer, bueno,

00:28:19.540 --> 00:28:25.820
yo me voy a quedar para ver cómo puedo cachar estos valores, pero ahorita con esto podría

00:28:25.820 --> 00:28:31.300
darme noción al trigger de que se dispare cuando ocurra ese insert, aquí lo que hay que ver es

00:28:31.300 --> 00:28:36.920
que nada más hay que revisar que el trigger no se haya creado, entonces aquí vamos a darle

00:28:36.920 --> 00:28:42.920
un refresh, y al parecer no, no se creó, entonces está bien que lo vuelva a ejecutar

00:28:43.420 --> 00:28:48.540
voy a limpiar ahí nada más esto para que pueda ver si es que sale algún otro error,

00:28:49.500 --> 00:28:55.400
ok, si de hecho me dice que ya existe el trigger, lo que no sé es porque aquí no lo pone,

00:28:56.460 --> 00:29:02.620
como que no lo vimos, dml insert, vamos a ver si aquí ya lo pone, ahí está,

00:29:03.000 --> 00:29:08.380
aquí está el dml, entonces lo voy a eliminar como para ver que se vuelva a crear bien,

00:29:08.980 --> 00:29:14.460
le voy a dar drop trigger, me digo que sí, ahí ya se dice que se borró,

00:29:15.600 --> 00:29:20.700
para que yo me asegure de que esté bien creado, ahí ya se compilo, ya se creó,

00:29:20.840 --> 00:29:28.180
entonces le doy aquí otra vez refresh y ya está el trigger, entonces cómo se probaría esto,

00:29:28.520 --> 00:29:31.220
básicamente aquí lo que estamos viendo es el uso del disparador,

00:29:32.020 --> 00:29:37.340
cómo se les ocurre aquí que debería de funcionar si le dijimos que es sobre un insert,

00:29:37.340 --> 00:29:46.000
pues literal tendremos que hacer un insert sobre la tabla de empleados y ya consultar la tabla

00:29:46.000 --> 00:29:56.020
de la secuencia, entonces nada más es armarse un, digamos un insert y utilizamos por ejemplo

00:29:56.020 --> 00:30:05.180
el tema de esta secuencia, entonces podemos ocupar algo como insert, insert into y aquí

00:30:05.180 --> 00:30:10.840
pondríamos entre paréntesis, perdón, bueno aquí sería el nombre de la tabla,

00:30:11.020 --> 00:30:17.220
en este caso es hr punto empleados, mira fíjate que creo que tenemos un insert por acá,

00:30:20.560 --> 00:30:30.640
para no estar buscando ahí comandos, control F, insert, mira justamente, vamos a buscar este,

00:30:30.640 --> 00:30:37.640
ah mira y es justo sobre empleados, entonces para que no nos tardemos simplemente me lo traigo

00:30:38.700 --> 00:30:49.020
y acá lo voy a pegar, ah perfecto, funcionó y aquí le voy a poner un id no sé diferente,

00:30:50.260 --> 00:30:55.760
el 207 o incluso lo puedo quitar y la secuencia creo que tiene asociada a una secuencia,

00:30:56.300 --> 00:31:02.740
no me acuerdo, si no la tiene puedo ocupar esta que cree, ahí es sabores, voy a poner el 207,

00:31:03.000 --> 00:31:08.760
todo tal cual, si yo lo ejecuto, ahí me va, voy a limpiar aquí esto y si yo lo ejecuto,

00:31:10.060 --> 00:31:18.560
esto debería funcionar, a ver nos dice que es el unique constraint por el insert,

00:31:18.560 --> 00:31:26.360
en donde es donde está fallando, hice audit, ejecución, insert, unique constraint, violado,

00:31:28.500 --> 00:31:35.100
ok probablemente es por la tabla, digo por este insert, vamos a ver si

00:31:35.100 --> 00:31:44.240
agregamos un este, a ver un 999 tal vez, aquí lo que puedo hacer es volver a borrar esto,

00:31:48.680 --> 00:31:55.400
ddl, estoy ocupando, ah bueno creo que más bien es, no, si si está bien, a ver lo voy a ejecutar,

00:31:56.040 --> 00:32:01.160
bueno a ver si no voy a usar creo que más rápido, voy a intentar quitar este campo,

00:32:02.160 --> 00:32:07.080
el del identificador, creo que lo maneja en automático el sequence,

00:32:08.020 --> 00:32:15.700
si entonces si yo vuelvo a limpiar aquí y lo ejecuto, debe haber un sequence, ok,

00:32:15.920 --> 00:32:21.460
si no me deja porque quiere el id, entonces no hay secuencia, entonces a ver ya la última tendría

00:32:21.460 --> 00:32:29.680
que ser agregar pues esta secuencia que acabamos de crear, vamos a utilizar esta para nuestro

00:32:29.680 --> 00:32:43.700
insert, que básicamente es hacer esto, punto, next value, si no nos equivocamos con eso,

00:32:43.740 --> 00:32:51.440
aquí le damos un insert, si ok algo está fallando pero me parece que es más bien del

00:32:51.440 --> 00:33:01.100
del trigger, vamos a ver qué dice, insertas en la tabla ddl audit, ah ok, no es en la tabla

00:33:01.100 --> 00:33:08.180
ddl audit, es en la tabla dml audit, qué pasó, que como yo lo estoy insertando en la tabla del,

00:33:08.180 --> 00:33:14.100
de la tabla anterior, vaya en el insert del dml, está agarrando el sequence que ya existía

00:33:14.100 --> 00:33:19.200
y por eso nos está mandando un duplicado, exactamente, entonces era más bien crearlo

00:33:19.200 --> 00:33:25.080
en mi tabla de acá, sale, y en los new values tienes toda la razón, aquí vamos a agregar un

00:33:25.080 --> 00:33:33.480
valor cualquiera, voy a ponerle new value porque si me lo va a pedir, así y aquí le voy a

00:33:33.480 --> 00:33:39.340
poner un simple null, entonces aquí es el dml audit, nada más déjenme revisar que todo esté

00:33:40.500 --> 00:33:47.600
correcto, ddl date, ok, entonces vamos a checarlo, create or replace, ahí debería de volver a

00:33:47.600 --> 00:34:00.660
botar el trigger, ahí está, ddl type, en dónde está marcando ese ddl type, user, ok parece que

00:34:00.660 --> 00:34:10.140
también tienes un error acá, en el object name es un insert, ahora vamos a ver si entonces con

00:34:10.140 --> 00:34:17.100
el ddl type anterior, que no creo que lo jale, pero a ver lo voy a agregar,

00:34:18.920 --> 00:34:26.560
system, el id, el system, la fecha, el nombre, el tipo, a ver voy a crear, voy a utilizar este,

00:34:27.420 --> 00:34:33.480
la verdad no creo que lo jale, pero a ver lo voy a intentar, en vez de user,

00:34:38.360 --> 00:34:42.960
no es cierto, sabes qué, es por esto, más bien, ya me di cuenta, es el campo, sino

00:34:42.960 --> 00:34:49.120
porque esto es el user, más bien era el campo, lo que estaba mal, el nombre, a ver, entonces

00:34:49.120 --> 00:34:59.400
si lo ejecutamos, debería de crear el trigger, nuevamente, ah, la fecha no es ddl, es dml date,

00:35:01.620 --> 00:35:07.880
y debería de haber otro, creo que ya es todo, vuelvo a limpiar y lo ejecuto acá,

00:35:08.660 --> 00:35:15.100
creamos la función, se creó el trigger, y si yo hago el insert, aquí ya no debería demandar error,

00:35:16.200 --> 00:35:25.640
si yo lo ejecuto, jala la fila, y ahora si yo podría hacer un select sobre la tabla, sobre esta,

00:35:27.640 --> 00:35:34.180
sobre esta, la de dml, que bueno básicamente es copiarnos el comando que ya tenemos acá,

00:35:34.180 --> 00:35:40.020
para no estar creando tantos, de hecho lo puedo ejecutar desde aquí mismo, nada más le cambio

00:35:40.020 --> 00:35:51.860
aquí el dml, y debería de haber un registro, déjamelo ejecuto, y con dml hace el insert,

00:35:52.240 --> 00:35:56.300
obviamente el new values es el que decíamos que ahorita debemos revisar, pero que es lo que

00:35:56.300 --> 00:36:01.500
estamos viendo aquí, que lo que está cachando es nuestro disparador, va, y ese disparador

00:36:01.500 --> 00:36:07.220
funciona sobre esta tabla de empleados, entonces que es lo que hace que cuando registra o escucha que

00:36:07.220 --> 00:36:15.700
hay una inserción sobre esta tabla, este trigger se dispara y ejecuta esta información, va,

00:36:16.220 --> 00:36:21.420
entonces así como hay triggers de inserción, podríamos haber usado un trigger de borrado,

00:36:21.500 --> 00:36:27.240
un trigger de selección, y aquí podríamos en vez de hacer un este, bueno es que aquí

00:36:27.240 --> 00:36:32.100
puedes hacer lo que quieras, no porque hagas un delete, tengas que hacer aquí un delete,

00:36:32.600 --> 00:36:37.020
no, o sea si haces un delete aquí, aquí lo que puedes hacer es hacer un insert igual

00:36:37.020 --> 00:36:42.140
sobre la tabla de auditoria del borrado, va, eso es como que lo que estaría haciendo,

00:36:42.860 --> 00:36:47.480
y eso es lo que estamos viendo acá, básicamente el uso del disparador,

00:36:48.400 --> 00:36:52.620
no sé si hasta ahí tengan alguna pregunta, yo ahorita en el pomodoro de los 15 minutos,

00:36:52.620 --> 00:36:59.440
voy a ver qué onda con cómo podemos sacar este value, sale, y que el registro quede todavía más,

00:36:59.440 --> 00:37:05.680
este, pues más completo, pero de ahí en fuera no sé si haya alguna duda de cómo funciona el

00:37:05.680 --> 00:37:09.400
disparador sobre la tabla de, más bien sobre la acción del insert.

00:37:12.420 --> 00:37:20.220
Ah, perfecto, en específico, muy correcto, exactamente, sale un DML, y un DDL si lo

00:37:20.460 --> 00:37:27.520
quieres hacer a nivel este global, correcto, sale, no, a ti ya tiene,

00:37:28.440 --> 00:37:36.300
bien, entonces son 12 y 5, les late que a las 12 y 20 nos volvamos a conectar y continuamos,

00:37:38.860 --> 00:37:43.520
y entonces va, entonces pongo el mute y nos vemos, muchas gracias.

00:37:51.060 --> 00:37:58.260
Adelante Harold, dime. Adelante.

00:38:02.080 --> 00:38:15.100
No, no, no, no, el DDL va a manipular, DDL son acrónimos de data definition, perdóname,

00:38:15.880 --> 00:38:22.800
ya me confundí, DDL es lenguaje de definición de datos, no, data definition language,

00:38:23.280 --> 00:38:27.880
entonces los comandos de definición son todos los que tienen que ver con los alters,

00:38:28.120 --> 00:38:36.180
con los create tables, con la definición de los datos de la tabla, con esto,

00:38:36.680 --> 00:38:42.120
con la estructura de los objetos, así lo podríamos decir, va, y el manipulado,

00:38:42.120 --> 00:38:49.160
ese sí es el que te ayuda a hacer inserciones, borrados, selects, ese es el DML,

00:38:49.180 --> 00:38:51.280
el manipulation language, va.

00:39:04.560 --> 00:39:09.800
Exactamente, exactamente, por eso es que cuando probamos nuestro primer trigger lo

00:39:09.800 --> 00:39:17.020
hacemos con un comando alter, cuando yo haga un alter o un create table, de hecho tú puedes

00:39:17.020 --> 00:39:23.060
hacer aquí varios ejemplos, puedes hacer un alter o crear otra tabla o un alter sobre otra

00:39:23.060 --> 00:39:26.800
tabla que no sea empleados y crear una nueva columna, etcétera, etcétera,

00:39:27.020 --> 00:39:34.560
y va a reaccionar el trigger, el disparador, si tú hicieras un insert en una tabla esperando

00:39:34.560 --> 00:39:38.640
que registre algo aquí, eso no va a pasar porque este no actúa sobre inserts, actúa

00:39:38.640 --> 00:39:44.840
sobre los definiciones, para hacer uno de insert, por ejemplo, está este trigger que

00:39:44.840 --> 00:39:50.100
hicimos acá, que de hecho es lo que dijo ahorita Leo, los DDL se ocupan a nivel global,

00:39:50.500 --> 00:39:55.220
aquí sí lo puedes ocupar, esto si te fijas, actúa sobre la base de datos, sobre los

00:39:55.220 --> 00:40:01.980
objetos, cualquier objeto, este otro no, este otro actúa en específico, le tienes que

00:40:01.980 --> 00:40:09.960
decir en qué tabla es en específico, va, perfecto, bien, entonces, ¿no gracias a

00:40:09.960 --> 00:40:10.400
ti?

00:40:59.960 --> 00:41:01.360
Gracias.

00:41:30.120 --> 00:41:31.520
Gracias.

00:42:00.040 --> 00:42:01.440
Gracias.

00:42:29.960 --> 00:42:31.360
Gracias.

00:43:00.100 --> 00:43:01.500
Gracias.

00:43:30.040 --> 00:43:31.440
Gracias.

00:43:59.960 --> 00:44:01.360
Gracias.

00:44:29.980 --> 00:44:31.380
Gracias.

00:45:00.040 --> 00:45:01.440
Gracias.

00:45:30.000 --> 00:45:31.400
Gracias.

00:46:00.040 --> 00:46:01.440
Gracias.

00:46:30.000 --> 00:46:31.400
Gracias.

00:47:00.040 --> 00:47:01.440
Gracias.

00:47:30.060 --> 00:47:31.460
Gracias.

00:48:00.040 --> 00:48:01.440
Gracias.

00:48:30.040 --> 00:48:31.440
Gracias.

00:49:00.040 --> 00:49:01.440
Gracias.

00:49:30.100 --> 00:49:31.500
Gracias.

00:50:00.040 --> 00:50:01.440
Gracias.

00:50:30.040 --> 00:50:31.440
Gracias.

00:51:00.040 --> 00:51:01.440
Gracias.

00:51:30.040 --> 00:51:31.440
Gracias.

00:52:00.040 --> 00:52:01.440
Gracias.

00:52:29.700 --> 00:52:38.740
Bueno, bueno. Listo, ahí ya me escuchan, ¿verdad? Todo bien. Vale, entonces, voy

00:52:38.740 --> 00:52:51.320
a compartir pantalla para que podamos continuar. Sale. Ahí ya se ve, ¿no? Sí. Bien,

00:52:52.140 --> 00:52:59.340
entonces, entonces, para hacer la modificación al, ya ven que hicimos el trigger de insert

00:52:59.900 --> 00:53:07.220
y nos estaba dando un problema por esto, ¿no? Básicamente es porque no me di cuenta

00:53:10.640 --> 00:53:20.860
estos identificadores cuando estamos haciendo, ¿cómo se llama? Triggers del tipo insertión,

00:53:20.920 --> 00:53:29.320
borrado y demás, esto de aquí afecta o es una forma de acceder a la fila, a

00:53:29.320 --> 00:53:36.220
que va insertándose. Lo hace fila por fila. Entonces, para que yo pudiera manipular eso

00:53:36.220 --> 00:53:45.280
por campo, tenía que haber agregado una instrucción antes que es esta, el for each

00:53:45.280 --> 00:53:52.880
row. Esta instrucción lo que hace es que en cada fila va a procesar la información

00:53:52.880 --> 00:53:59.840
de esta forma, ¿sale? Entonces, no es más que agregarle esto. En este caso yo voy a

00:53:59.840 --> 00:54:07.440
ir cerrando estas pestañas para que veamos cómo con esto yo ejecuto nuevamente el

00:54:07.440 --> 00:54:14.220
trigger. Si te fijan, ya estoy ocupando bien la tabla de ML, que es la que ocupé

00:54:14.220 --> 00:54:22.040
para este, su ID, todo lo que le definimos aquí, ¿no? La fecha de ML, etcétera,

00:54:22.040 --> 00:54:28.860
el tipo y el valor de new values, sale, ya lo puedo acceder a través de esta

00:54:29.560 --> 00:54:35.040
instrucción. Entonces, el ID yo les digo que quiero que ocupemos este sequence,

00:54:35.620 --> 00:54:42.100
¿sí? En la fecha normal, el user, esto para identificar que es un insert sobre

00:54:42.100 --> 00:54:45.980
la tabla de empleados, por eso aquí de hecho podríamos ser más específico,

00:54:45.980 --> 00:54:51.920
mi insert es sobre empleados y ahora sí yo puedo acceder para agregar el new

00:54:51.920 --> 00:54:57.520
values, lo que yo estoy agregando aquí es la concatenación del identificador del

00:54:59.840 --> 00:55:05.880
empleado y un espacio y el valor del correo electrónico, ¿sale? Si yo hago

00:55:05.880 --> 00:55:14.200
eso, creo el trigger, lo creo y ahí me dice que ya se compilo, que ya se

00:55:14.840 --> 00:55:20.860
compilo, si yo aquí actualizará, por ejemplo, las conexiones, pues ya, ahí todo

00:55:20.860 --> 00:55:26.840
bien y si yo hago el insert, así yo lo prepararía, me digo inserta sobre la

00:55:28.000 --> 00:55:32.060
tabla, que es el mismo ejemplo que tenemos, aquí nada más le estoy

00:55:32.060 --> 00:55:42.760
diciendo que agarre la ML adecuada, el nombre de, bueno, el registro y

00:55:42.760 --> 00:55:49.080
aquí me di cuenta que el hr, el esquema, le metió un constrain al correo

00:55:49.080 --> 00:55:53.500
electrónico, que quiere decir que no puedo poner uno repetido, entonces cada

00:55:53.500 --> 00:55:56.680
vez que yo hago un insert, aquí ahorita en mi ejemplo, pues tengo que

00:55:56.680 --> 00:56:02.240
cambiarlo, ¿no? manualmente, entonces, si yo lo guardo

00:56:02.240 --> 00:56:07.320
en un insert, la fila se inserta, las secuencias

00:56:10.520 --> 00:56:17.280
se agregan, sí, y cuando yo hago el asterisco from de la tabla, me voy a dar

00:56:17.280 --> 00:56:22.860
cuenta que ya va guardando los registros, ya accede en la tabla new values

00:56:22.860 --> 00:56:30.060
a el valor que agregamos acá, que fue el identificador, que es el que va

00:56:30.060 --> 00:56:35.180
agregando, un espacio y el email, ¿no? o sea, yo aquí puedo poner cualquier

00:56:35.180 --> 00:56:39.400
texto realmente, pero estoy ilustrando que estoy accediendo al

00:56:39.400 --> 00:56:44.580
campo empleado y al campo email, puedo aquí agregar cualquier campo que

00:56:44.580 --> 00:56:51.040
esté dentro de la tabla de empleados, ¿va? cualquier campo que esté

00:56:51.040 --> 00:56:54.860
sobre esta tabla, yo puedo acceder a ellos a través de acá

00:56:56.080 --> 00:57:05.160
y con esto yo estaría haciendo el registro de auditoría de la tabla de

00:57:06.740 --> 00:57:15.160
y en vez aquí de usar los new, son los old, los campo old, entonces estos

00:57:15.160 --> 00:57:20.040
registros quieren decir lo que borré, el viejo registro, por así decirlo, lo va

00:57:20.040 --> 00:57:24.440
a guardar, ¿no? este también es como útil de conocer

00:57:25.480 --> 00:57:30.600
quería ver el deshacer, ahí está, y aquí

00:57:33.620 --> 00:57:37.220
claro, claro que sí, voy a

00:57:37.720 --> 00:57:43.420
si, voy a voy a copiar el trigger, bueno de hecho todo el ejemplo

00:57:44.160 --> 00:57:49.160
y también lo voy a poner en la presentación, este, nada más que aquí

00:57:49.160 --> 00:57:54.420
está medio raro el email, no sé por qué es esto, es que esto es básicamente de que no nos

00:57:54.420 --> 00:58:01.500
permite usar bien los como que sea tonta, es por dadestop, no es por ubuntu

00:58:01.500 --> 00:58:07.600
ni oracle, no es eso, más bien es como que la comunicación entre el clipboard

00:58:07.600 --> 00:58:12.440
algo aquí tiene esto, no sé, no me había pasado porque yo

00:58:12.440 --> 00:58:18.100
generalmente ocupo igual windows, pero bueno, este curso que

00:58:18.340 --> 00:58:25.120
estamos dando aquí en esta, en este sistema operativo, pues bueno, está presentando y

00:58:25.120 --> 00:58:30.840
como que cosillas medio raras, entonces voy a copiar todo esto hasta

00:58:30.840 --> 00:58:36.740
arriba, hasta arriba, sí, ahí están las secuencias de pasos

00:58:36.740 --> 00:58:41.220
y de hecho en lo que si quieren ustedes la van intentando, van jugando con esto,

00:58:41.280 --> 00:58:46.280
yo voy a copiarlo en la presentación para que también ahí lo tengan, este,

00:58:46.280 --> 00:58:53.480
disponible, va, de hecho le voy a quitar la selección para que no confunda y

00:58:53.480 --> 00:58:58.820
voy a copiarme esto en la presentación y ahí lo dejo para que ustedes

00:58:58.820 --> 00:59:04.900
puedan, este, interactuar, si es que así lo lo quieren probar, no?

00:59:05.500 --> 00:59:07.960
entonces yo ahorita voy a poner

00:59:11.120 --> 00:59:24.060
acá, le voy a poner aquí, duplicar y le voy a poner, es que realmente este ejercicio se me ocurrió ahorita como para que podíamos complementar la práctica, no?

00:59:24.080 --> 00:59:33.600
es bastante usado el tema de los trios, por eso no estaba aquí definido, vamos a ponerle algo así como ejercicio de trigger

00:59:35.600 --> 00:59:48.540
para insert, sobre empleado, le voy a dar pegado en formato,

00:59:51.140 --> 01:00:05.920
no esto, todo esto es en Arial, ah ya, ya sé que pasó, mejor primero copiar el código para que

01:00:06.920 --> 01:00:16.260
sin formato, ahí está, y pues básicamente son los queries que se tienen que ir ejecutando,

01:00:16.520 --> 01:00:28.020
voy a quitarlo a este formato medio cucho, creo que, ah, entonces me acuerdo con esta parte,

01:00:28.020 --> 01:00:38.020
lo que si quieren ustedes van, este, probando y si tienen alguna duda lo vamos revisando, no sé si sale algún error,

01:00:43.180 --> 01:00:49.020
y esto de acá también que afecta a este, y listo,

01:00:56.520 --> 01:01:11.100
ya, entonces este lo voy a separar en dos partes, hasta que creamos la tabla de auditoría,

01:01:11.980 --> 01:01:24.100
y luego le voy a decir, duplicar, aquí pegamos lo que falta, aquí le vamos a poner un eje, un texto más que diga,

01:01:26.600 --> 01:01:35.100
probando el trigger, voy a quitar, aquí es Arial y ya está, ahí también en la presentación ya actualicé

01:01:35.720 --> 01:01:45.100
este, lo que viene a ser el ejemplo, va, para que lo puedan también tener ahí en la, la posteridad,

01:01:48.020 --> 01:01:58.160
y ya nada más entramos, ya está, si ustedes actualizan la presentación, también ya este, tienen el trigger, va,

01:01:59.460 --> 01:02:12.320
voy a revisar, no sé si alguien tenga algún comentario o duda, o requieran este apoyo para que les ayude con el trigger,

01:02:15.960 --> 01:02:30.460
ahora vamos a empezar con hardware, ah no es cierto, Orlando lo tengo a la mano, este, bueno ahí creo que lo están copiando,

01:02:30.460 --> 01:02:46.460
si hay tratadoras en algo me avisas, va Orlando, sin tema, luego, perfecto, luego paso con Harold, este, ah pues ya lo agregaste ¿no?

01:02:47.660 --> 01:03:08.440
ahí quedó Harold, vamos a ver a Jesús, está copiando, ok, y vamos viendo, ok, ahí está, y creo el place trigger, ahí está,

01:03:08.440 --> 01:03:19.340
ahí está, ahí está guardando los registros ¿no? te guardo el ID, te guardo el, y creo que es, que es eso,

01:03:23.440 --> 01:03:28.360
ok, creo que también no tuviste bronca ¿verdad? este, Jesús,

01:03:34.600 --> 01:03:50.900
a ver, ah perfecto, ah bien, entonces ya vi que hiciste el case y todo, es cierto, ándale, ok, exacto, perfecto, bien,

01:03:51.900 --> 01:04:00.940
a ver ahí cómo fue, déjame le echa un ojo ¿no? dice before insert or rotate, sobre, ajá, cualquiera de las dos actividades,

01:04:01.240 --> 01:04:10.740
sobre inserción o actualización, for each row, haces el declare, begin, ahí está el case, con respecto al transaction,

01:04:12.100 --> 01:04:20.200
muy bien, a ver nada más déjame ver ahí qué onda, case, ah perfecto, ahí está, entonces está muy bueno,

01:04:20.380 --> 01:04:26.740
ese también si quieres ahí lo puedes compartir, la presentación es justo para eso ¿no? está, les di el acceso a,

01:04:29.500 --> 01:04:36.000
ah no es cierto, creo que ahorita lo tienen como lectores, si quieres lo puedes compartir en el couch share y a los demás lo podemos agarrar,

01:04:36.000 --> 01:04:49.300
y yo después al final ya del día les puedo dar el acceso de este administrador para que puedan complementar ahí ustedes la presentación y pues agreguen más este,

01:04:49.700 --> 01:05:01.000
más ejemplos ¿va? bien, entonces eso estuvo súper bien, luego jalamos con Aaron, Aaron ya lo agrego, perfecto,

01:05:02.000 --> 01:05:12.940
no tuviste broncas ¿verdad? si, te ayudo, ah si, si luego hay como que se quedan comandos medio raros, no sé, lo que le pasó también a este de Leon,

01:05:13.560 --> 01:05:22.560
quién sabe, si, ya eliminar y actualizar hasta que ya ¿no? jaló, perfecto, bien, entonces va,

01:05:22.560 --> 01:05:32.720
y luego vamos con la más falta Leon, vamos a ver este, a ver me voy a hacer más grande este, como está en la orilla no me deja agarrar esta cosa,

01:05:32.880 --> 01:05:46.560
ahí está, ya me dejó, a ver este, ya la agregaste, ya la creaste, ah estás haciendo los cambios ¿ok? va, ya vas a agregar el trigger, ahí está, ya jaló,

01:05:47.220 --> 01:05:56.660
y ah bueno estás haciendo los ejercicios ¿no? paso, paso, ok, creo que no tuviste bronca ¿verdad Leon? o si tienes algo me avisa,

01:05:57.980 --> 01:06:07.940
perfecto, perfecto, bien todos, sale, pues bueno con eso estaríamos cerrando prácticamente el tema este,

01:06:08.800 --> 01:06:15.940
de los logs, y bueno aquí nada más vamos a ir haciendo como una pequeña remembranza,

01:06:17.380 --> 01:06:22.940
voy a continuar con, de ahí me voy a pasar hasta el tema 6, que es el tema siguiente ¿no? en la presentación,

01:06:25.520 --> 01:06:37.920
y bueno aquí básicamente nada más este, vamos a hablar de un archivo,

01:06:37.920 --> 01:06:42.420
que es un archivo que nos permite usar para hacer este auditorías y demás,

01:06:43.560 --> 01:06:51.620
y sobre todo también este registro ¿no? de ahí de trazabilidad, de algún problema o no sé, que podamos este encontrar,

01:06:51.980 --> 01:06:58.260
pues ahí vimos tres formas de hacer este logs ¿no? la verdad es que me detuve un poco más en esta parte,

01:06:58.580 --> 01:07:02.800
porque creo que es de las cosas que más este vamos a estar ocupando,

01:07:02.800 --> 01:07:08.100
al menos creo que la mayoría de la audiencia lo que entendí o escuché,

01:07:08.440 --> 01:07:11.700
bueno aquí abro pauta a un poco también el diálogo web,

01:07:11.880 --> 01:07:16.980
por si ustedes me dicen que se invirtió mucho tiempo en una práctica como así,

01:07:17.520 --> 01:07:24.280
lo considero para las siguientes actividades, ¿por qué? porque este curso si se fijan es muy de administración ¿no?

01:07:24.680 --> 01:07:29.120
entonces yo veo que en la audiencia hay más como desarrollo ¿no?

01:07:29.120 --> 01:07:32.800
entonces creo que a lo mejor un tema como de triggers y demás,

01:07:33.140 --> 01:07:36.480
entonces tal vez más este, más, más cómo decirlo, más útil,

01:07:37.180 --> 01:07:42.960
pero a lo mejor aquí abro el diálogo, si ustedes me dicen no, ¿sabes qué? la verdad se invirtió mucho tiempo,

01:07:44.240 --> 01:07:49.140
a la próxima preparo a lo mejor ajusto mejor dicho los ejercicios,

01:07:49.540 --> 01:07:52.900
para que sean más este centrados en el tema de administración,

01:07:53.240 --> 01:07:57.520
ahorita está más balanceado, pero te digo yo como vi que si es más de desarrollo,

01:07:57.520 --> 01:08:00.300
pues le metí incluso el último ejercicio ¿no?

01:08:00.640 --> 01:08:03.160
no sé ustedes qué opinan, ¿quieren que sigamos viendo,

01:08:03.800 --> 01:08:07.040
nos inclinamos poquito más como al tema de desarrollo,

01:08:07.100 --> 01:08:09.440
o sea no me voy a salir del temario, el temario es lo que es,

01:08:10.100 --> 01:08:15.120
pero los ejemplos que vayan más orientados como a desarrollo o más como a administración,

01:08:15.260 --> 01:08:19.160
ustedes digan quién quiere participar al desarrollo.

01:08:19.160 --> 01:08:24.120
Ok, a ver este Leon, tu comento opinión,

01:08:24.200 --> 01:08:28.400
creo que tú eras el administrador de aquí ¿no? del equipo,

01:08:28.840 --> 01:08:33.740
ah ya ves Leon, ¿cómo ves? ¿qué hacemos para inclinarnos en los ejemplos,

01:08:33.840 --> 01:08:39.160
está bien así o nos vemos más como en gestión en administración.

01:08:40.780 --> 01:08:42.520
Sí, o sea de hecho está equilibrado,

01:08:43.160 --> 01:08:47.160
pero te digo ahorita yo invertí un ejemplo más en el trigger,

01:08:47.160 --> 01:08:49.440
por ejemplo que es más como de desarrollo,

01:08:50.640 --> 01:08:54.120
por lo que escuché ¿no? de que la audiencia es más como de depth,

01:08:55.380 --> 01:08:59.200
pero no hay tema ¿eh? o sea ahora sí que es como...

01:09:10.260 --> 01:09:12.660
un 50 a 50.

01:09:15.700 --> 01:09:20.860
Ah ok va, sale, entonces ya cambiaste, ya cambió de role este Jaron,

01:09:21.280 --> 01:09:23.580
va a ser el, va a ser el Arnes,

01:09:23.780 --> 01:09:27.880
agárale, bien entonces, muy bien, muy bien, sale,

01:09:29.120 --> 01:09:30.500
y si no es en discreción Leon,

01:09:31.040 --> 01:09:33.180
ah perdóname, ¿quién va a hablar?

01:09:37.040 --> 01:09:38.080
Jesús, sale,

01:09:39.080 --> 01:09:39.760
ajá, dime,

01:09:41.760 --> 01:09:44.080
ah ok, perfecto,

01:09:47.160 --> 01:09:52.380
de hacer respaldos y demás,

01:09:52.380 --> 01:09:55.340
ah a ver,

01:09:55.860 --> 01:09:58.180
creo que genera,

01:09:58.800 --> 01:10:02.200
sí, sí, sí yo creo que sí,

01:10:03.060 --> 01:10:03.080
respaldos,

01:10:09.070 --> 01:10:09.990
ajá,

01:10:13.310 --> 01:10:14.230
ajá,

01:10:14.230 --> 01:10:14.310
sí,

01:10:14.310 --> 01:10:14.590
ajá,

01:10:16.210 --> 01:10:16.590
ajá,

01:10:17.250 --> 01:10:17.810
ajá,

01:10:19.230 --> 01:10:20.510
sí, también claro,

01:10:21.150 --> 01:10:21.810
sí, sí,

01:10:22.190 --> 01:10:25.830
ok, quieres que veamos como nos enfocamos también en,

01:10:27.110 --> 01:10:31.590
en usuarios ¿no? como dar permisos y visualización de tablas ok,

01:10:34.410 --> 01:10:34.930
permisos,

01:10:38.950 --> 01:10:40.870
si digamos que si tú a un usuario,

01:10:41.550 --> 01:10:45.470
o sea, te entendí, tienes dos tablas en dos, perdón, dos bases de datos

01:10:45.470 --> 01:10:52.150
diferentes y quieres gestionar los roles, digamos un usuario le das el role para que ocupe la tabla

01:10:52.150 --> 01:10:53.550
uno y dos,

01:10:53.970 --> 01:10:57.530
y los pueda hacer Joy ¿no? las pueda cruzar, ok, va,

01:10:57.930 --> 01:10:58.290
sí,

01:10:58.290 --> 01:11:01.210
ok, entonces también nos enfocamos en esa parte,

01:11:01.630 --> 01:11:06.790
a mí me sirve mucho hacer esto pues más que nada porque lo que yo quiero es que el curso quede,

01:11:06.790 --> 01:11:08.310
pues muy a la medida de ustedes,

01:11:08.570 --> 01:11:11.190
como les comentaba a mí me dicen quién es al final,

01:11:11.570 --> 01:11:13.790
o sea de hecho cuando me conecté el lunes ¿no?

01:11:14.270 --> 01:11:17.370
digo ayer, martes, no es cierto ayer no fue martes, el martes vaya,

01:11:17.990 --> 01:11:20.450
yo me enteré de quiénes son demás y,

01:11:20.510 --> 01:11:22.450
pues la verdad es que yo creo que eso está medio,

01:11:23.690 --> 01:11:24.050
bueno,

01:11:24.630 --> 01:11:26.010
podemos, podemos mejorarlo ¿no?

01:11:26.010 --> 01:11:26.610
entonces,

01:11:27.550 --> 01:11:27.950
pues sí,

01:11:28.690 --> 01:11:30.150
es más como una reto como para,

01:11:30.830 --> 01:11:32.770
en que quieren que me enfoque un poquito más ¿no?

01:11:33.110 --> 01:11:37.170
y le balanceamos ejercicios como nos dijo Leon y Harold,

01:11:37.470 --> 01:11:40.750
son 50 y 50 administración y desarrollo ¿no?

01:11:41.930 --> 01:11:44.830
ah, te decía Leon entonces tú te vas, tú vas a hacer ¿qué hora?

01:11:44.910 --> 01:11:46.870
ya no vas a ser DBA ¿qué hora eres?

01:11:48.530 --> 01:11:49.610
¿de box o qué?

01:11:50.930 --> 01:11:51.810
ah, perfecto,

01:11:51.810 --> 01:11:52.870
bien entonces, va,

01:11:53.730 --> 01:11:55.710
yo nada sé ahí como me baje cultura,

01:11:57.070 --> 01:11:58.010
ok, bien entonces,

01:11:58.010 --> 01:12:00.010
entonces continuamos, yo me llevo esta notita,

01:12:00.190 --> 01:12:02.810
va para, en base a eso ir preparando más,

01:12:03.970 --> 01:12:05.810
como ajustando mejor dicho los ejercicios,

01:12:07.130 --> 01:12:07.550
bien entonces,

01:12:08.310 --> 01:12:11.470
el tema que sigue es la parte de los net services,

01:12:12.810 --> 01:12:13.810
sale esto,

01:12:15.050 --> 01:12:16.830
vamos a leer un poquito de teoría,

01:12:17.170 --> 01:12:18.450
y a ver quién falta,

01:12:18.530 --> 01:12:20.270
creo que por ejemplo,

01:12:20.270 --> 01:12:22.430
a ver qué les parece si,

01:12:22.430 --> 01:12:23.090
Jesús,

01:12:23.750 --> 01:12:25.750
nos ayudas a leer esta,

01:12:25.930 --> 01:12:27.150
diapositiva por favor,

01:12:28.110 --> 01:12:29.650
la 86,

01:12:29.990 --> 01:12:31.270
bien entonces, muchas gracias,

01:12:35.630 --> 01:12:36.310
correcto,

01:13:07.050 --> 01:13:09.530
ahí está,

01:13:09.550 --> 01:13:10.690
perdona,

01:13:11.090 --> 01:13:11.790
estamos,

01:13:14.050 --> 01:13:15.670
creo que por acá,

01:13:16.290 --> 01:13:17.010
acá,

01:13:19.890 --> 01:13:20.250
exacto,

01:13:23.070 --> 01:13:24.470
correcto,

01:13:26.950 --> 01:13:28.350
correcto,

01:13:47.130 --> 01:13:48.530
perfecto,

01:13:48.530 --> 01:13:49.790
muchas gracias,

01:13:49.890 --> 01:13:50.450
Jesús,

01:13:52.450 --> 01:13:53.090
luego dice,

01:13:53.870 --> 01:13:56.930
configurando y administrando un Oracle Net Services,

01:13:58.410 --> 01:14:02.530
configurar y administrar Oracle Net Services en Ubuntu,

01:14:04.210 --> 01:14:07.110
implica establecer conexiones de red seguras y eficientes,

01:14:07.310 --> 01:14:09.570
va, se realiza mediante,

01:14:09.630 --> 01:14:13.930
se realiza principalmente mediante la edición de archivos de configuración,

01:14:14.430 --> 01:14:16.110
como el list en el punto hora,

01:14:16.110 --> 01:14:17.430
para el Oracle,

01:14:18.490 --> 01:14:20.110
perdón, para el Oracle Net Listener,

01:14:20.910 --> 01:14:24.290
y el TNS names para la configuración del cliente,

01:14:24.350 --> 01:14:24.810
entonces,

01:14:25.410 --> 01:14:26.550
aquí aparece,

01:14:26.630 --> 01:14:28.070
dos conceptos,

01:14:28.370 --> 01:14:29.630
también importantes,

01:14:30.390 --> 01:14:31.750
y sobre todo,

01:14:33.910 --> 01:14:35.110
digamos muy,

01:14:35.330 --> 01:14:36.830
necesarios de identificar,

01:14:37.530 --> 01:14:38.530
dos archivos,

01:14:38.670 --> 01:14:40.170
que son el list en el punto hora,

01:14:40.630 --> 01:14:41.970
y el TNS names,

01:14:42.850 --> 01:14:45.030
básicamente eso que es lo que nos permite,

01:14:45.150 --> 01:14:46.970
como lo estaba comentando aquí Jesús,

01:14:48.110 --> 01:14:49.430
de la diapositiva,

01:14:50.210 --> 01:14:53.070
Oracle provee un servicio que se llama Net Services,

01:14:53.630 --> 01:14:56.410
que básicamente lo que hace es que nos permite tener,

01:14:57.110 --> 01:14:58.030
una base de datos,

01:14:58.370 --> 01:14:58.970
por así decirlo,

01:15:00.250 --> 01:15:01.810
compartida en la red,

01:15:02.770 --> 01:15:03.630
qué quiere decir esto,

01:15:03.670 --> 01:15:06.530
que es como si nosotros vamos a hacer una analogía,

01:15:06.690 --> 01:15:07.970
pusiéramos una aplicación,

01:15:08.630 --> 01:15:09.710
en un servidor,

01:15:09.710 --> 01:15:11.210
y este es,

01:15:11.210 --> 01:15:12.710
accedido a través de,

01:15:13.890 --> 01:15:14.710
puertos y protocolos,

01:15:15.610 --> 01:15:16.650
en este caso HTTP,

01:15:17.650 --> 01:15:20.130
y lo pueden consultar varios clientes,

01:15:20.670 --> 01:15:23.050
entonces, en una arquitectura cliente-servidor,

01:15:23.190 --> 01:15:24.430
en donde muchos clientes,

01:15:24.470 --> 01:15:26.750
se conectan a una instancia de un server,

01:15:28.290 --> 01:15:28.590
y,

01:15:28.590 --> 01:15:30.390
obtienen o interactúan,

01:15:30.490 --> 01:15:31.670
mejor dicho con un aplicativo,

01:15:31.910 --> 01:15:33.590
eso es básicamente lo que,

01:15:33.950 --> 01:15:35.990
la analogía más cercana,

01:15:36.050 --> 01:15:37.230
lo que es Net Services,

01:15:39.710 --> 01:15:40.410
es que Oracle,

01:15:41.290 --> 01:15:42.810
va a,

01:15:42.810 --> 01:15:45.630
por medio de un archivo listener.ora,

01:15:46.050 --> 01:15:47.710
exponer o,

01:15:48.590 --> 01:15:50.650
sí, vamos a decirlo así, exponer,

01:15:50.770 --> 01:15:52.210
para que los TNC names,

01:15:53.370 --> 01:15:55.210
que digamos un cliente,

01:15:55.370 --> 01:15:57.630
se pueda conectar a esa base de datos,

01:15:58.310 --> 01:16:00.650
desde la infraestructura del,

01:16:00.650 --> 01:16:03.270
de los protocolos de intercambio de información,

01:16:03.410 --> 01:16:04.710
como por ejemplo TCP,

01:16:06.230 --> 01:16:08.090
nosotros con ese archivo de conexión,

01:16:09.710 --> 01:16:10.910
vamos a conectar directamente,

01:16:11.330 --> 01:16:14.030
a esa base de datos que se encuentra en el server,

01:16:14.190 --> 01:16:16.710
va, entonces es muy importante tener noción,

01:16:17.670 --> 01:16:19.030
de que existen estos archivos,

01:16:19.210 --> 01:16:20.630
y para que se ocupan, va,

01:16:21.090 --> 01:16:23.170
nuevamente, para hacer ya,

01:16:23.430 --> 01:16:24.330
para cerrar esta parte,

01:16:25.210 --> 01:16:26.890
el listener.ora,

01:16:27.430 --> 01:16:27.810
configura,

01:16:28.550 --> 01:16:30.170
lo que vendría a ser la,

01:16:30.230 --> 01:16:31.110
bueno, más bien define,

01:16:31.250 --> 01:16:32.950
lo que vendría a ser la configuración,

01:16:33.850 --> 01:16:35.430
de Oracle, base de datos,

01:16:35.890 --> 01:16:36.770
como un server,

01:16:39.710 --> 01:16:42.030
que se configuraría en cada máquina cliente,

01:16:42.230 --> 01:16:44.770
que quisiera conectarse a esa instancia de configuración,

01:16:44.830 --> 01:16:46.270
a esa configuración, va,

01:16:46.790 --> 01:16:47.890
es básicamente eso,

01:16:48.290 --> 01:16:50.050
en donde se encuentra cada uno,

01:16:50.250 --> 01:16:52.270
bueno, en este caso este listener,

01:16:52.410 --> 01:16:54.030
ahorita lo vamos a acceder nosotros,

01:16:54.490 --> 01:16:57.610
en el que tenemos en nuestra instancia,

01:16:58.230 --> 01:17:00.150
sí, y básicamente es esto,

01:17:00.470 --> 01:17:03.710
dice que el archivo listener.ora define parámetros,

01:17:06.110 --> 01:17:06.710
perdón,

01:17:07.050 --> 01:17:08.490
para ese ahora con net listener,

01:17:09.710 --> 01:17:10.850
teniendo el nombre del listener,

01:17:10.970 --> 01:17:12.410
el protocolo,

01:17:12.550 --> 01:17:14.290
y la dirección IP y el puerto,

01:17:14.630 --> 01:17:16.070
se va a encontrar en esta ruta,

01:17:16.250 --> 01:17:18.810
Oracle Home Network Admin,

01:17:19.110 --> 01:17:20.650
incluso creo que así literal,

01:17:20.690 --> 01:17:22.930
si yo la copio como esta variable está definida,

01:17:23.130 --> 01:17:24.390
en nuestra instancia,

01:17:24.890 --> 01:17:26.790
la podemos acceder,

01:17:27.250 --> 01:17:27.690
entonces,

01:17:29.070 --> 01:17:29.950
voy a hacer esto, miren,

01:17:30.010 --> 01:17:31.190
de hecho esta la voy a quitar,

01:17:31.390 --> 01:17:32.650
porque esto más bien es una nota,

01:17:32.750 --> 01:17:33.810
que me voy a llevar yo,

01:17:34.530 --> 01:17:35.810
no tanto ahí,

01:17:39.710 --> 01:17:40.410
para mí,

01:17:41.290 --> 01:17:42.110
y listo,

01:17:42.210 --> 01:17:44.730
aquí adentro yo podría ejecutar un comando,

01:17:44.730 --> 01:17:45.910
similar a este,

01:17:47.450 --> 01:17:48.690
ahí, a esto,

01:17:49.310 --> 01:17:52.910
sí, aquí en mi instancia de Docker,

01:17:53.210 --> 01:17:55.750
va, entonces si yo abriera aquí,

01:17:55.950 --> 01:17:56.510
que está haciendo,

01:17:56.730 --> 01:17:57.930
ah, este es el ID,

01:17:58.610 --> 01:18:00.190
voy a abrir mi otro terminal,

01:18:00.590 --> 01:18:05.250
donde está jugando con la conexión de la instancia y demás,

01:18:06.150 --> 01:18:07.110
acá,

01:18:08.330 --> 01:18:10.590
voy a quitar esto,

01:18:16.810 --> 01:18:17.770
voy a quitar esta parte,

01:18:18.730 --> 01:18:20.070
y si te fijas yo estoy acá,

01:18:20.150 --> 01:18:21.470
en esta ruta,

01:18:21.730 --> 01:18:23.070
bueno, me voy a cambiar

01:18:23.070 --> 01:18:25.950
a la parte que tengo acá,

01:18:26.570 --> 01:18:28.430
si yo copio este comando,

01:18:28.850 --> 01:18:29.950
y lo pego acá,

01:18:31.290 --> 01:18:33.150
en mi instancia de,

01:18:34.630 --> 01:18:35.350
¿cómo se llama?

01:18:36.150 --> 01:18:36.410
Docker,

01:18:36.470 --> 01:18:37.830
en mi contenedor de Oracle,

01:18:39.130 --> 01:18:41.170
si se fijan yo le dije,

01:18:41.270 --> 01:18:42.550
llévame a esta ruta,

01:18:42.790 --> 01:18:45.130
a Oracle Home Network Admin,

01:18:45.330 --> 01:18:48.030
aquí yo puedo ver entonces cuánto vale Oracle Home,

01:18:48.710 --> 01:18:49.010
¿por qué?

01:18:49.010 --> 01:18:51.410
porque lo que está en Network Admin está acá,

01:18:51.730 --> 01:18:53.930
entonces todo lo que está del lado izquierdo,

01:18:53.970 --> 01:18:56.970
vendría a ser mi variable Oracle Home,

01:18:57.890 --> 01:18:59.030
esto es Oracle Home,

01:18:59.250 --> 01:19:00.830
esto Oracle Home quiere decir,

01:19:01.070 --> 01:19:03.250
el directorio donde está instalado,

01:19:03.330 --> 01:19:04.410
pues literal,

01:19:06.150 --> 01:19:07.330
si te fijas dice,

01:19:07.650 --> 01:19:08.910
Oracle, el producto,

01:19:09.110 --> 01:19:10.670
la versión 19c,

01:19:10.870 --> 01:19:12.650
y listo,

01:19:12.670 --> 01:19:15.150
entonces yo aquí adentro,

01:19:16.390 --> 01:19:18.870
vamos a ver qué pasa si le doy una SLA,

01:19:19.130 --> 01:19:20.090
si tú te fijas,

01:19:20.290 --> 01:19:21.590
aquí tengo dos archivos,

01:19:21.770 --> 01:19:22.510
bueno, tengo varios,

01:19:23.410 --> 01:19:25.050
pero dos importantes son,

01:19:26.750 --> 01:19:28.030
el Listener,

01:19:28.290 --> 01:19:30.590
y mi TNSNX,

01:19:31.870 --> 01:19:32.930
estos archivos,

01:19:33.090 --> 01:19:34.630
también nosotros los tenemos,

01:19:34.630 --> 01:19:36.690
en nuestra chuleta,

01:19:36.850 --> 01:19:37.630
que hemos estado trabajando,

01:19:39.450 --> 01:19:40.730
sale y,

01:19:40.730 --> 01:19:42.070
déjame buscar la chuleta,

01:19:42.290 --> 01:19:42.730
acá está,

01:19:43.710 --> 01:19:46.210
la puse casi hasta abajo,

01:19:47.590 --> 01:19:49.070
van a encontrar ahí,

01:19:49.630 --> 01:19:50.910
los archivos,

01:19:52.690 --> 01:19:53.330
TNSNX,

01:19:53.530 --> 01:19:54.090
y ahora,

01:19:55.190 --> 01:19:56.410
que de hecho agregué otro más,

01:19:56.610 --> 01:19:57.730
ahorita lo vamos a ver,

01:19:58.010 --> 01:19:58.410
son tres,

01:19:59.590 --> 01:20:01.650
y básicamente es esto,

01:20:01.650 --> 01:20:02.470
cómo entramos,

01:20:02.610 --> 01:20:05.550
como lo decía aquí nuestra presentación,

01:20:06.510 --> 01:20:08.130
me conecto a la instancia de Oracle,

01:20:08.510 --> 01:20:11.730
le digo que me lleve al Oracle Home Network Admin,

01:20:11.950 --> 01:20:12.650
y ahí adentro,

01:20:13.450 --> 01:20:15.130
le doy un SLA,

01:20:15.310 --> 01:20:17.710
y me lista estos archivos,

01:20:18.370 --> 01:20:19.570
si te fijas estoy aquí,

01:20:20.750 --> 01:20:22.250
y cómo puedo ver el contenido,

01:20:22.390 --> 01:20:24.350
en este caso voy a repasar el primero,

01:20:24.490 --> 01:20:25.570
el Listener,

01:20:25.730 --> 01:20:27.410
si yo me fijo,

01:20:29.110 --> 01:20:31.130
yo le puedo dar un cat,

01:20:31.650 --> 01:20:32.870
porque estoy limitado,

01:20:32.950 --> 01:20:34.330
no he instalado el sudo,

01:20:34.510 --> 01:20:35.390
el nano,

01:20:37.610 --> 01:20:38.410
ni siquiera el bin,

01:20:39.710 --> 01:20:41.270
entonces con el puro cat,

01:20:41.670 --> 01:20:42.650
yo puedo usar esto,

01:20:44.690 --> 01:20:45.230
ocupo,

01:20:45.590 --> 01:20:46.870
y te fijas aquí adentro,

01:20:46.950 --> 01:20:48.090
está una configuración,

01:20:48.450 --> 01:20:50.250
ahorita vamos a ver más adelante,

01:20:50.530 --> 01:20:51.350
bueno yo creo que ya no es hoy,

01:20:51.390 --> 01:20:52.010
va a ser mañana,

01:20:52.470 --> 01:20:54.490
pero más adelante la diapositiva nos dice,

01:20:56.210 --> 01:20:59.270
hay un servicio de configuración en automático,

01:21:01.650 --> 01:21:02.010
vamos a ver la configuración de datos,

01:21:02.210 --> 01:21:03.870
por algunos de los comandos que hemos usado,

01:21:04.050 --> 01:21:05.370
como DBSL,

01:21:06.350 --> 01:21:06.870
CDBDA,

01:21:07.450 --> 01:21:08.490
como Oracle,

01:21:08.570 --> 01:21:10.470
perdón, como el Docker Compose,

01:21:10.790 --> 01:21:13.110
como algún comando que ocupe,

01:21:13.250 --> 01:21:15.670
que sean como del tipo asistente,

01:21:15.830 --> 01:21:18.150
de hecho si ustedes se fijan,

01:21:18.630 --> 01:21:20.770
estas configuraciones,

01:21:21.310 --> 01:21:22.490
nosotros no las hemos movido,

01:21:22.710 --> 01:21:25.530
no se alteran,

01:21:25.650 --> 01:21:28.030
no las damos de alta manualmente,

01:21:28.890 --> 01:21:29.970
vamos a ver en la presentación,

01:21:31.650 --> 01:21:33.770
una estática y una dinámica,

01:21:34.070 --> 01:21:36.270
la dinámica es la que viene por default,

01:21:37.050 --> 01:21:39.330
y cuando yo cree una base de datos y demás,

01:21:39.770 --> 01:21:41.310
en automático me va a dar,

01:21:41.310 --> 01:21:42.150
Oracle,

01:21:43.670 --> 01:21:44.670
todo lo necesario,

01:21:45.350 --> 01:21:47.010
para acceder al Listener,

01:21:47.390 --> 01:21:48.750
y también al TNC Names,

01:21:48.910 --> 01:21:49.850
me los van agregando,

01:21:50.310 --> 01:21:52.490
en un caso de que algo fallara,

01:21:52.570 --> 01:21:53.250
no se agregara,

01:21:53.330 --> 01:21:55.630
o simplemente yo siendo más experto,

01:21:55.730 --> 01:21:56.630
le puedo modificar,

01:21:57.270 --> 01:21:58.870
que también es válido,

01:22:01.650 --> 01:22:02.850
es todo estático,

01:22:03.210 --> 01:22:05.670
para poder acceder a esto,

01:22:06.030 --> 01:22:06.650
a estos archivos,

01:22:08.090 --> 01:22:08.530
modificarlos,

01:22:09.010 --> 01:22:10.210
por otro lado yo voy a hacer,

01:22:10.610 --> 01:22:12.390
también voy a ver que hay en el TNC Names,

01:22:12.690 --> 01:22:14.110
acordémonos, el Listener,

01:22:14.290 --> 01:22:16.230
es el que configura,

01:22:16.510 --> 01:22:17.350
a la base de datos,

01:22:17.650 --> 01:22:19.870
para que otros clientes,

01:22:20.150 --> 01:22:21.050
nos puedan acceder,

01:22:21.050 --> 01:22:21.790
en este caso,

01:22:22.570 --> 01:22:23.770
no vamos a llegar a un ejemplo,

01:22:23.830 --> 01:22:24.870
en donde se accede a Red,

01:22:25.170 --> 01:22:27.290
porque es una máquina local,

01:22:31.670 --> 01:22:32.730
que es una configuración,

01:22:32.730 --> 01:22:34.590
que va más allá de estas prácticas,

01:22:35.390 --> 01:22:36.710
por eso ahorita nada más se lleva,

01:22:37.110 --> 01:22:39.110
al nivel conceptual de lo que es,

01:22:39.250 --> 01:22:41.150
y si podemos revisar,

01:22:41.210 --> 01:22:42.470
lo que internamente está haciendo,

01:22:42.770 --> 01:22:44.650
que es una configuración local,

01:22:46.890 --> 01:22:47.990
y el TNC Names,

01:22:48.130 --> 01:22:49.810
si tú te fijas aquí tiene igual,

01:22:50.030 --> 01:22:51.130
pero en este caso,

01:22:51.250 --> 01:22:52.370
aquí tiene más información,

01:22:52.570 --> 01:22:53.990
todo esto también está en la chuleta,

01:22:55.390 --> 01:22:56.290
si te acuerdas,

01:22:56.430 --> 01:22:57.570
creamos una base de datos,

01:22:57.570 --> 01:22:58.150
que es un CDB,

01:22:58.310 --> 01:23:01.850
que se llama New World CLCDB,

01:23:01.850 --> 01:23:03.570
con nuestro comando CDBC,

01:23:04.570 --> 01:23:05.890
que está ahí en la presentación,

01:23:05.990 --> 01:23:06.990
se creó,

01:23:07.550 --> 01:23:09.370
y también, si te fijas,

01:23:09.410 --> 01:23:11.370
es un CDB,

01:23:12.110 --> 01:23:13.570
también nosotros agregamos,

01:23:17.210 --> 01:23:18.650
una base de datos,

01:23:18.710 --> 01:23:20.150
que es la que hemos utilizado,

01:23:20.610 --> 01:23:21.650
y ésta si se acuerdan,

01:23:21.750 --> 01:23:23.830
se generó con el archivo Docker Compose,

01:23:23.890 --> 01:23:26.030
que ya lo hemos repasado varias veces,

01:23:27.670 --> 01:23:29.470
entonces aquí me doy que te doy a entender,

01:23:30.050 --> 01:23:32.930
que ya sea con cualquiera de los dos formas que hicimos,

01:23:33.350 --> 01:23:34.970
se nos creó,

01:23:34.970 --> 01:23:37.710
ajá, el archivo en forma en automático,

01:23:38.450 --> 01:23:39.670
y aquí abajo,

01:23:39.870 --> 01:23:40.950
déjame ver qué más hay,

01:23:42.630 --> 01:23:44.090
además de agregarnos eso,

01:23:44.170 --> 01:23:45.230
pues nos crea un list tener,

01:23:45.790 --> 01:23:47.570
para cada una de los CDBs,

01:23:47.650 --> 01:23:49.610
que en este caso está haciendo esto,

01:23:49.710 --> 01:23:51.730
aquí te mapea el puerto que va a ocupar,

01:23:51.790 --> 01:23:53.390
el host, 0.0.0,

01:23:53.730 --> 01:23:54.610
es el local host,

01:23:54.610 --> 01:23:57.670
y lo hace tanto para el CDB1,

01:23:57.790 --> 01:23:58.610
como para el CDB2,

01:23:59.670 --> 01:24:01.910
adicional en este CDB,

01:24:02.130 --> 01:24:04.010
también estamos haciendo uso,

01:24:04.250 --> 01:24:04.610
del PDB,

01:24:05.790 --> 01:24:06.490
que de hecho bueno,

01:24:06.690 --> 01:24:08.650
este PDB creo que es el que se agregó,

01:24:08.810 --> 01:24:10.030
en la base de ayer,

01:24:11.510 --> 01:24:13.930
de New World CLCDB,

01:24:14.350 --> 01:24:16.610
el comando éste que cada quien ejecutó,

01:24:17.410 --> 01:24:19.650
y que le puso su inicial y demás,

01:24:20.250 --> 01:24:21.830
ahí a lo mejor a ustedes,

01:24:21.830 --> 01:24:24.770
sus list teners,

01:24:24.830 --> 01:24:26.630
sus tenes and names,

01:24:28.330 --> 01:24:29.650
son diferentes,

01:24:30.190 --> 01:24:30.570
pero bueno,

01:24:30.950 --> 01:24:32.830
la idea de eso es que podamos saber,

01:24:34.470 --> 01:24:36.410
cómo acceder a estos archivos,

01:24:36.510 --> 01:24:37.290
en qué ruta están,

01:24:37.630 --> 01:24:39.670
ahí dejamos la chuleta,

01:24:39.890 --> 01:24:40.890
dejé los comandos,

01:24:40.990 --> 01:24:42.790
y que lo puedan ver qué tiene,

01:24:43.770 --> 01:24:46.270
entonces no tienen por qué ser iguales,

01:24:46.530 --> 01:24:47.830
porque cada quien creó,

01:24:48.550 --> 01:24:50.250
sus CDBs diferentes,

01:24:50.970 --> 01:24:52.530
con un name diferente,

01:24:53.990 --> 01:24:54.550
y pues bueno,

01:24:54.730 --> 01:24:56.590
eso es lo que contiene los archivos,

01:24:56.750 --> 01:24:58.250
ahorita vamos a,

01:24:59.190 --> 01:25:01.750
ya de hecho ya terminamos el día de hoy,

01:25:02.050 --> 01:25:03.250
sale y este,

01:25:04.170 --> 01:25:05.490
pues bueno aquí nada más te va diciendo,

01:25:05.670 --> 01:25:07.610
de lo que es el list tenor,

01:25:07.690 --> 01:25:10.250
lo que es el cliente,

01:25:10.270 --> 01:25:11.250
cómo lo puedes acceder,

01:25:12.170 --> 01:25:13.250
a través de un tenes and names,

01:25:13.270 --> 01:25:14.870
que se conecte a este list tenor,

01:25:15.310 --> 01:25:16.670
que no es más que realmente,

01:25:16.690 --> 01:25:18.270
lo que hemos estado nosotros revisando,

01:25:20.250 --> 01:25:21.250
en un ejemplo teórico,

01:25:21.910 --> 01:25:23.010
te ponen un list tenor,

01:25:23.170 --> 01:25:24.610
en donde tú habilitas lo que te decía,

01:25:25.110 --> 01:25:27.130
si damos un ejemplo levantamos un server,

01:25:27.550 --> 01:25:28.430
lo ponemos ahí,

01:25:28.670 --> 01:25:29.850
y un cliente,

01:25:30.170 --> 01:25:31.470
configuramos que ese cliente,

01:25:31.590 --> 01:25:33.790
ese servidor tenga el acceso a ese cliente,

01:25:33.970 --> 01:25:35.270
y lo podemos mapear,

01:25:35.570 --> 01:25:36.990
en este caso como todo es local,

01:25:37.090 --> 01:25:39.730
pues va a funcionar sin mayor problema,

01:25:40.730 --> 01:25:41.350
va entonces,

01:25:41.550 --> 01:25:43.290
básicamente es el repaso,

01:25:43.390 --> 01:25:45.890
de lo que es el list tenor,

01:25:46.490 --> 01:25:47.010
y demás,

01:25:50.410 --> 01:25:51.870
mañana los vamos a revisar,

01:25:52.030 --> 01:25:52.810
estos dos comandos,

01:25:53.090 --> 01:25:54.370
pero básicamente,

01:25:54.870 --> 01:25:55.850
esto nos ayuda,

01:25:56.210 --> 01:25:58.350
a gestionar ya no,

01:25:58.410 --> 01:26:00.270
no son los comandos del,

01:26:01.370 --> 01:26:03.150
que configuran la instancia,

01:26:03.190 --> 01:26:04.130
de la base de datos,

01:26:04.810 --> 01:26:06.810
que podíamos reiniciar la instancia,

01:26:07.450 --> 01:26:08.330
aquí suena,

01:26:08.590 --> 01:26:09.310
bueno aquí ya podemos,

01:26:10.410 --> 01:26:11.930
diferenciar estos dos conceptos,

01:26:12.250 --> 01:26:14.270
uno es la administración de la instancia,

01:26:14.750 --> 01:26:16.710
otro es la administración del,

01:26:16.830 --> 01:26:18.630
por eso que lo llaman la gestión,

01:26:20.250 --> 01:26:21.470
porque son comandos diferentes,

01:26:22.150 --> 01:26:23.630
para la base de datos,

01:26:23.890 --> 01:26:24.770
son el shutdown,

01:26:25.170 --> 01:26:26.990
el inmediate, el normal,

01:26:27.130 --> 01:26:29.250
y el startup para reiniciar,

01:26:30.350 --> 01:26:31.310
bueno volverlo a encender,

01:26:32.070 --> 01:26:34.250
y con estos los lsnrctl,

01:26:35.290 --> 01:26:37.170
son comandos que nos permiten,

01:26:37.210 --> 01:26:39.050
gestionar pero el list tenor,

01:26:39.210 --> 01:26:40.030
vamos a poder,

01:26:41.230 --> 01:26:41.770
apagarlo,

01:26:42.710 --> 01:26:43.250
encenderlo,

01:26:43.870 --> 01:26:44.310
y pues bueno,

01:26:44.430 --> 01:26:45.950
eso es lo que nos va a permitir,

01:26:45.950 --> 01:26:46.710
hacer,

01:26:47.730 --> 01:26:49.930
gestión de ese archivo,

01:26:49.930 --> 01:26:50.250
va,

01:26:51.030 --> 01:26:52.590
vamos a entrar mañana,

01:26:52.710 --> 01:26:53.670
bueno eso ya lo vemos mañana,

01:26:54.030 --> 01:26:54.950
en detalle,

01:26:55.190 --> 01:26:57.490
cómo se puede configurar este,

01:26:57.850 --> 01:27:00.110
básicamente nada más es cambiar una línea,

01:27:00.510 --> 01:27:02.750
si se fijan aquí los servidores son dedicados,

01:27:03.090 --> 01:27:03.950
vamos a hacer un cambio,

01:27:04.030 --> 01:27:04.990
para que sea un share,

01:27:06.430 --> 01:27:08.210
y a share me refiero a esto,

01:27:09.930 --> 01:27:11.110
ya con eso estaríamos creando,

01:27:11.170 --> 01:27:13.530
una arquitectura compartida,

01:27:13.530 --> 01:27:13.950
sí,

01:27:14.730 --> 01:27:16.450
que básicamente va a poder,

01:27:17.290 --> 01:27:18.810
hacer que otros,

01:27:19.830 --> 01:27:20.250
otras,

01:27:22.190 --> 01:27:23.390
clientes se puedan conectar,

01:27:24.070 --> 01:27:24.930
al aplicativo,

01:27:25.030 --> 01:27:26.750
aquí no es más que estábamos viendo,

01:27:27.350 --> 01:27:28.710
que contiene cada archivo,

01:27:28.870 --> 01:27:30.810
que son los que estuvimos revisando,

01:27:31.130 --> 01:27:32.590
tema de la arquitectura,

01:27:33.530 --> 01:27:33.850
dedicada,

01:27:34.290 --> 01:27:36.030
un ejemplito de,

01:27:36.070 --> 01:27:36.970
bueno la,

01:27:37.210 --> 01:27:37.970
el comando,

01:27:39.090 --> 01:27:41.410
más bien la descripción de lo que hace cada uno,

01:27:43.750 --> 01:27:44.190
y bueno,

01:27:44.490 --> 01:27:46.190
entramos con el SQLinit ahora,

01:27:46.350 --> 01:27:47.810
lo vamos a dejar aquí,

01:27:48.470 --> 01:27:48.910
este,

01:27:50.370 --> 01:27:51.570
y mañana pues ya,

01:27:51.750 --> 01:27:53.330
entramos otra vez en materia,

01:27:55.210 --> 01:27:55.890
este, pues bueno,

01:27:55.970 --> 01:27:58.070
no me queda más que nuevamente agradecer,

01:27:58.730 --> 01:28:00.090
la atención y la participación,

01:28:00.330 --> 01:28:01.650
León levantó la mano, adelante,

01:28:03.310 --> 01:28:03.710
va,

01:28:04.350 --> 01:28:05.270
entonces nos vemos mañana,

01:28:05.370 --> 01:28:06.770
y muchas gracias a ustedes,

01:28:07.010 --> 01:28:07.670
que tengan buen día.