viernes, 30 de diciembre de 2022

Crear Usuario ORACLE DATABASE

Crear Usuario ORACLE DATABASE
================================

Ejecutar cmd SQL Plus

Introduzca usuario: CONN /AS SYSDBA
Introduzca contraseña:

$> ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;
$> CREATE USER usuario IDENTIFIED BY secret;
$> GRANT DBA TO usuario;

-------------------------------------------------------------------------------
--LISTAR TODOS LOS USUARIOS/ESQUEMAS  DENTRO DE LA BASE DE DATOS EN LA CUAL ESTOY CONECTADO
SELECT * FROM DBA_USERS

--CAMBIAR LA FECHA DE EXPIRACIÓN DE LA CONTRASEÑA
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED

--CAMBIAR LA CONTRASEÑA DE UN USUARIO/ESQUEMA
ALTER USER SYSTEM IDENTIFIED BY 1234


Crear  Tabla en ORACLE DATABASE
==================================

CREATE TABLE post(
    id NUMBER(10) PRIMARY KEY NOT NULL,
    title VARCHAR2(50) NOT NULL UNIQUE,
    description VARCHAR2(150) NOT NULL,
    content VARCHAR2(255) NOT NULL,
    status CHAR(1) DEFAULT '1' NOT NULL
);
CREATE SEQUENCE seq_post START WITH 1;

INSERT INTO post(id,title,description,content) VALUES(seq_post.nextval,'My New first Post','First Post description','This is my new first post');

INSERT INTO post(id,title,description,content) VALUES(seq_post.nextval,'My Second Post','Second Post description','This is my new second post');

UPDATE post 
set description='FOURTH POST DESCRIPTION' 
WHERE id=2;


viernes, 23 de diciembre de 2022

Programacion Funcional JAVA

 Programación Funcional JAVA

1.  List<Integer> numeros = List.of(11, 21, 38, 43, 54, 66, 7, 8, 19, 10);

     a) Obtener la cantidad de números pares.
     b) Obtener todos los números pares.
     c) Ordenar la lista de números en orden ascendente.
     d) Ordenar la lista de números en orden descendente.
     e) Ordenar solo los números pares en orden descendente.

Solución:

a)
     long result = numeros.stream()                                 
                                      .filter(n -> n % 2 == 0)
                                      .count();
     System.out.println(result);

b)
     List<Integer> listNumeros =  numeros.stream()                                 
                                                         .filter(n -> n%2 == 0)
                                                         .collect(Collectors.toList());
     listNumeros.forEach(System.out::println);   
                   
c)
     List<Integer> listOrderAsc =  numeros.stream() 
                                                         .sorted()                                   
                                                         .collect(Collectors.toList());
     listOrderAsc.forEach(System.out::println);

d)
     List<Integer> listOrderDesc =  numeros.stream() 
                                                         .sorted(Collections.reverseOrder())                                   
                                                         .collect(Collectors.toList());
     listOrderDesc.forEach(System.out::println);    

e)
     List<Integer> listOrderParDesc =  numeros.stream() 
                                                         .filter(n -> n % 2 == 0)
                                                         .sorted(Collections.reverseOrder())                                   
                                                         .collect(Collectors.toList());
     listOrderParDesc.forEach(System.out::println);  

2. Se tiene la siguiente lista de objetos. Crear la clase User con sus atributos name, edad y sus metodos get y set.

  List<User> users = new ArrayList<>();
    users.add(new User("Rafael", 25));
    users.add(new User("Daniel", 20));
    users.add(new User("Tania", 15));
    users.add(new User("Luisa", 24));
    users.add(new User("Miguel", 16));
    users.add(new User("Raul", 17));

a) Obtener la cantidad de usuarios con una edad mayor o igual a 18 y que su nombre empiecen con la letra "R".
b) Obtener solo el nombre de todas las personas mayores a 18
c) Ordenar la lista de objetos por el nombre en orden ascedente y mostrar solo el nombre.
d) Ordenar la lista de objetos por el nombre en orden descendente.
e) ghg
f) ghg
g) hg
h) gh

Solución:

a)
long cantidad = users.stream()
            .filter(user -> user.getAge() >= 18 && user.getName().toUpperCase().startsWith("R"))
            .count();
    System.out.println(cantidad);

b)
List<String> listMayor = users.stream()
            .filter(user -> user.getAge() >= 18)
            .map(User::getName)       // (u->u.getName())   //u es un objeto de la Clase User
            .collect(Collectors.toList());
    listMayor.forEach(System.out::println);

c)
List<String> byNameAsc = users.stream()
            .sorted((User a, User b) -> a.getName().compareTo(b.getName()))
            .map(User::getName) // (u->u.getName())   //u es un objeto de la Clase User
            .collect(Collectors.toList());

   byNameAsc.forEach(System.out::println);

d)
List<User> listUserOrderDesc = users.stream()
            .sorted((User a, User b) -> b.getName().compareTo(a.getName()))
            .collect(Collectors.toList());

    listUserOrderDesc.forEach(System.out::println);


martes, 6 de diciembre de 2022

Procedimientos Almacenados SQL SERVER

-- Procedimiento Listar
CREATE PROCEDURE sp_getAllCategories
AS
BEGIN
    SELECT id,descripcion,estado
    FROM CATEGORIAS
    ORDER BY id DESC
END
GO

EXEC sp_getAllCategories;

Uso del Case
CREATE PROCEDURE sp_getAllClients
AS
BEGIN
SELECT id,
name,
lastName,
dni,
CASE gender
WHEN 1 THEN 'Masculino'
WHEN 0 THEN 'Femenino'
END AS gender,
phone,
address,
email,
CASE status
WHEN 1 THEN 'Activo'
WHEN 0 THEN 'Inactivo'
END AS status
FROM CLIENT
ORDER BY id DESC
END


-- Procedimiento Buscar
CREATE PROCEDURE sp_searchCategory
@searchText varchar(50)
AS
BEGIN

    SELECT id,descripcion,estado
    FROM CATEGORIAS
    WHERE nombre LIKE '%' + @searchText + 
'%' OR descripcion LIKE '%' + @searchText + '%'
    ORDER BY nombre ASC
END
GO

-- Procedimiento Buscar por nombre
CREATE PROCEDURE sp_findCategoryByName
@nombre varchar(30)
AS
BEGIN

    SELECT id,descripcion,estado
    FROM CATEGORIAS
    WHERE estado=1 and UPPER(TRIM(descripcion)) LIKE '%' + UPPER(TRIM(@nombre)) +'%'
END
GO

exec uspFiltrarCategoriaPorNombre 'A'

-- Procedimiento Insertar
CREATE PROCEDURE sp_insertCategory
@nombre varchar(50),
@descripcion varchar(150)
AS
BEGIN
INSERT INTO CATEGORIAS(nombre,descripcion)
        VALUES(@nombre,@descripcion)
END
GO

EXEC sp_insertCategory @nombre='Este es otro nombre',
                                             @descripcion='Este es otra descripcion'

-- Procedimiento Actualizar
CREATE PROCEDURE sp_updateCategory
@id INT,
@descripcion varchar(30)
AS
BEGIN
UPDATE CATEGORIAS 
SET descripcion=@descripcion
WHERE id=@id
END
GO

EXEC sp_updateCategory @id=2,
                                               @descripcion='descripcion actualizada';

-- Procedimiento Eliminar
CREATE PROCEDURE sp_deleteCategory
@id int
AS 
BEGIN
     DELETE FROM CATEGORIAS
     WHERE id=@id
END
GO

-- Procedimiento Verificar la existencia de un registro
CREATE PROCEDURE sp_categoryExists
@description varchar(50),
@exists BIT OUTPUT
AS 
BEGIN
     IF EXISTS(SELECT 1 FROM CATEGORIAS WHERE description=@description)
     BEGIN
           SET @exists=1
     END
     ELSE
     BEGIN
           SET @exists=0
     END
END
GO

-- Procedimiento Desactivar
CREATE PROCEDURE sp_disableCategory
@id int
AS 
BEGIN
     UPDATE CATEGORIA SET status=0
     WHERE id=@id
END
GO

-- Procedimiento Activar
CREATE PROCEDURE sp_enableCategory
@id int
AS 
BEGIN
     UPDATE CATEGORIA SET status=1
     WHERE id=@id
END
GO

lunes, 17 de octubre de 2022

ARRAY CON PHP


Ejercicios

1. Del siguiente arreglo:
$numbers = [1, 5, 23, 4, 12, 45, 78, 6, 8.2, 26];

Filtrar los números que son mayores a 20.

Solución:
$results = array_filter($numbers, function ($number) {
  return $number > 20;
});

foreach ($results as $result) {
  echo $result;
}

2. Del siguiente arreglo:

$students = [
  [
    'name' => 'Carlos',
    'score' => 12
  ],
  [
    'name' => 'Daniel',
    'score' => 10
  ],
  [
    'name' => 'Sofia',
    'score' => 18,
  ],
  [
    'name' => 'Maria',
    'score' => 11,
  ],
  [
    'name' => 'Alex',
    'score' => 9,
  ]
];

Obtener la lista de estudiantes aprobados y desaprobados.

Solución:

$approved = array_filter($students, function ($student) {
  return $student['score'] >= 11;
});

foreach ($approved as $student) {
  echo $student['name'] . ' ' . $student['score'] . '<br>';
}

$disapproved = array_filter($students, function ($student) {
  return $student['score'] <= 10;
});

foreach ($disapproved as $student) {
  echo $student['name'] . ' ' . $student['score'] . '<br>';
}



lunes, 10 de octubre de 2022

Multiples versiones de php en Windows 11

Multiples versiones de php en Windows 11

CONFIGURAR LAS VARIABLES DE ENTORNO PHP

CONFIGURAR LA VARIABLE PHP_HOME

Buscamos Editar las variables de entorno del sistema -> Variables de entorno -> Nueva (Variables del sistema)

Crear Nueva Variable del sistema
Escribiremos en las cajas de texto lo siguiente:
Nombre de variable : PHP7
Valor de variable : 
C:\laragon\bin\php\php-7.4.32-Win32-vc15-x64

Crear Nueva Variable del sistema
Escribiremos en las cajas de texto lo siguiente:
Nombre de variable : PHP8
Valor de variable : 
C:\laragon\bin\php\
php-8.1.10-Win32-vs16-x64



Ahora apuntaremos a una sola versión de PHP
Escribiremos en las cajas de texto lo siguiente:
Nombre de variable : PHP_HOME
Valor de variable : %PHP7%

CONFIGURAR LA VARIABLE PATH
Seleccionamos Path (Variables del sistema) -> Editar -> Nuevo
Escribiremos lo siguiente: 
%PHP_HOME%
Con esto le indicamos que utilizara la versión a la que este apuntando el PHP_HOME.







domingo, 9 de octubre de 2022

RESTAURAR VISUAL STUDIO CODE A VALORES DE FÁBRICA


RESTAURAR VISUAL STUDIO CODE A VALORES DE FÁBRICA

- Desinstalamos totalmente Visual Studio Code

- Abrir la ventana de ejecutar (Tecla [Win] + [R]) Y escribimos:
   %userprofile%\AppData\Roaming
  Buscamos la carpeta Code y la eliminamos.

- Para eliminar las extensiones ir a la ubicacion %userprofile%
  Buscamos la capeta .vscode y la eliminamos.

- Finalmente volvemos a reinstalar VS Code

--------------------------------------------------------------------------------------------------------------
Ruta del Fichero global de atajos de teclado keybindings.json y settings.json

%userprofile%\AppData\Roaming\Code\User

Instalar múltiples versiones de Python en Windows (uv)

  Gestionar múltiples versiones de Python Instalación de uv en Windows ================================= Ejecutar como administrador PowerSh...