Oracle change initial password with sqlplus

A quick tip, at the first login in DB you must to change the initial password but some tools cannot do this, for example dbeaver.  But you can download sqlplus  binaries from oracle web site and unzip it in some place to execute from command line.

I’ve downloaded the windows client instantclient-sqlplus-windows.x64-18.3.0.0.0dbru.zip and executed the next command:

sqlplus.exe /nolog

To connect you can use one of these commands:

# TNS
conn USER@TNS_ALIAS

#SID (short like jdbc format)
conn USER/PASS@host:port/SID

# Service name
CONNECT USER/PASS@'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))'

# SID
CONNECT USER/PASS@'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SID=sales.us.acme.com)))'

Note the password is optional in command line but if you don’t set the client will ask for it.

Saludos

JDK 8: Lambdas and Streams Introduction

I was enroll since 2014 in Oracle Learning to take a massive online course (MOC) named JDK 8: Lambdas and Streams Introduction, but I leaved it for the scholar activities and my work, I don’t had time to take it.

If you don’t know it, Oracle Learning has published a few free courses about Oracle Technologies, it looks very complete and interesting, may be you want give a try.

Well and now that I took the course to learn about new features about JDK 8 (I know, currently Java 8 is an old version, but I want to know it).

The video lessons are really good and very concrete, and I’m happy with the result, unaunfortunately the tests had expired, I don’t care too much becase the important is the content of the course, the maximum score that I could get is 88%:

2018-07-03 17_53_07-Learning Path Finder

I’m really happy with the result I want to know more about the Functional Programming and the best practices to use the Stream API and Lambdas, I think is very usefull aproach for Java language.

The next course that I want to take is the JVM Troubleshooting.

Saludos

Oracle, one way to truncate tables

Para continuar con la ronda de oracle, una forma de borrar los datos de todas las tablas de un tablesapce de un usuario se puede ejecutar con los siguientes querys.

Lo que hacen es desacivar las restricciones de las relaciones e imprimir en el log todos los querys que vas a necesitar para guardarlos en un script y posteriormente ejecutarlo.

Me parece que es una forma sencilla y útil para limpiar todas las tablas de la base de un usuario.

-- Get query list to disable restrictions
SELECT 'ALTER TABLE'||' '||owner||'.'||table_name||' DISABLE CONSTRAINT '||constraint_name||' ;' FROM dba_constraints WHERE constraint_type = 'R' and owner='user name' and status = 'ENABLED';
-- Get querys to truncate all tables
SELECT 'TRUNCATE TABLE '||OWNER||'.'||TABLE_NAME||' ;' FROM DBA_TABLES WHERE OWNER='user name';
-- Get query list to enable restrictions
SELECT 'ALTER TABLE'||' '||owner||'.'||table_name||' ENABLE CONSTRAINT '||constraint_name||' ;' FROM dba_constraints WHERE constraint_type = 'R' and owner='user name' and status = 'ENABLED';

Referencias

Saludos!

Oracle List Procedures

Querys para listar los procedimientos de la base de datos 🙂

-- List all
SELECT * FROM User_Procedures;
SELECT * FROM DBA_Procedures;
-- Find procedure and source
SELECT * FROM DBA_Procedures WHERE PROCEDURE_NAME = 'PROCEDURE_NAME';
SELECT * FROM User_Source WHERE name = 'PROCEDURE_NAME' ;
SELECT * FROM DBA_Source WHERE name = 'PROCEDURE_NAME';

Oracle – Eliminar Sesiones Activas

Siempre termino buscando esto y nunca lo anoto, pero mejor tarde que nunca :p:

1. Obtener lista de sesiones activas:

SELECT a.USERNAME, a.SID, a.SERIAL#, b.SPID
        FROM v$session a, v$process  b
        WHERE  a.PADDR= b.ADDR 
        ORDER by 1;

2. Eliminar la sesión activa por el SID y el SERIAL:

ALTER SYSTEM KILL SESSION 'SID, SERIAL#';

Debes colocar el número del SID y el SERIAL  de la sesión que deseas eliminar.

Saludos

Install Oracle 11g Enterprise R2 in Mac OS X 10.8 (VM)

Instalar Oracle 11g Enterprise R2 en Mac OS X 10.8 (VM)

Como muchos sabrán el motor de base de datos de Oracle está disponible para múltiples sistemas operativos como:

Download Microsoft Windows (32-bit)
Download Microsoft Windows (x64)
Download Linux x86
Download Linux x86-64
Download Solaris (SPARC) (64-bit)
Download Solaris (x86-64)
Download HP-UX Itanium
Download HP-UX PA-RISC (64-bit)
Download AIX (PPC64)

Y claro en la lista no se encuentra disponible para Mac (¬¬ gracias Larry Ellison… por esas productivas juntas con el señor Jobs), en fin no esta porque la versión empresarial está dirigida para servidores, principalmente los que están basados en unix ( los que si son servidores =p ). Seguir leyendo

Database tools, DBeaver and Squirrel

Herramientas de Base de Datos, DBeaver y Squirrel

Existen muchos manejadores de base de datos y generalmente utilizamos las herramientas oficiales de cada provedor, por ejemplo para Oracle esta el SQL developer, para MySQL el MySQL Workbench, etc…

Principalmente utilizo MySQL, sin embargo en Kubuntu tengo algunos problemas con el Workbench ya que no funciona muy bien con conexiones remotas o con tuneling por SSH, así que no me queda de otra que buscar alternativas, afortunadamente existen dos completamente open source =)!!

Las herramietas que utilizo para estos casos son :

Ambas muy buenas y son multiplatafora!! (utilizan java), pienso que no es bueno compararlas ya que cada una tiene su fuerte, por ejemplo:

  • squirrel, soporta HQL para trabajar con Hibernate y JPA, genera scripts de datos tanto de la estructura de  las tablas como los datos dentro de las mismas, exporta en xls, csv.
  • dbeaver, soporta tunneling de SSH de forma nativa y descarga los drivers de base de datos de automáticamente.

Ambas generan el diagrama entidad relación, tienen función de acutocomplementar los querys, entre otras características =).

Aquí dejo algunas imágenes:

Seguir leyendo

Hibernate Composite Keys With Annotations

Hibernate, Llaves Compuestas Con Anotaciones

Dentro de las buenas y muy malas experiencias que me han tocado con Hibernate he aprendido que existen varios caminos y formas de utilizarlo, y en esta publicación quiero colocar la forma para crear una tabla con llaves compuestas utilizando anotaciones.

A pesar de que esto puede sonar una tarea común y corriente implica conocer algunos detalles que a veces son imperceptibles para los desarrolladores hasta que estamos frente al IDE (o editor de texto) y decimos «Y ahora como rayos hago esto??», en fin en mi experiencia esto es lo que  he encontrado:

Nota: Los ejemplos los hice en MySQL pero llevan la anotación SequenceGenerator por que funcionan también en Oracle sin modificar nada de códig

Seguir leyendo

Ingeniería en inversa en PHP con Doctrine (Reverse Engineering DB)

Bueno ahora voy a colocar como obtener las entidades y el mapeo desde una base de datos ya existente, sin embargo esto no es un proceso seguro ya que depende completamente de la base de datos, si tienes una base de datos compleja puede que el resultado no sea el esperado, yo recomiendo hacer el mapeo manualmente, pero si tu modelo de base es bueno y esta correctamente desarrollado puedes intentar la ingeniería en inversa.

Hay que tomar las consideraciones que vienen en la documentación:

Reverse Engineering is not always working perfectly depending on special cases.

Reverse Engineering is a one-time process that can get you started with a project. Converting an existing database schema into mapping files only detects about 70-80% of the necessary mapping information. Additionally the detection from an existing database cannot detect inverse associations, inheritance types, entities with foreign keys as primary keys and many of the semantical operations on associations such as cascade.

Requisitos:

Seguir leyendo