Buscando artículos sobre "Oracle"
12-mayo-2014
admin

Concatenar múltiples filas de una columna en una sentencia SQL para Oracle

Ejemplo:

Tenemos 1 tabla llamada ciudades, con los campos: id, nombreCiudad y nombrePais. Y queremos sacar un listado de todos los paises con sus ciudades concatenadas separadas por una coma. Para ello bastaria con ejecutar esta sentencia:


Select nombrePais, rtrim(xmlagg(xmlelement(ciudades, nombreCiudad ||’,’)).extract(‘//text()’), ‘,’)
from ciudades group by nombrePais;

Funciones utilizadas
rtrim – Se usa para quitar la la última coma de la cadena formada.
xmlagg – Retorna una colección de nodos en formato XMLFormat object, con todas las ciudades de cada pais (ya que hemos agrupado por pais en el group by).
xmlelement – Se utiliza para generar el formato que van a tener los nodos. El primer campo el es identificador del tag que se le asigna dentro del xml y el segundo campo el contenido de ese tag.
extract – En este caso se usa para extraer del docuemtno xml generado el texto.

Nota: Si en lugar de campos separados por comas se deseara separar las ciudades con saltos de línea se podría hacer lo siguiente:

Select nombrePais, rtrim(xmlagg(xmlelement(ciudades, nombreCiudad || CHR(13) || CHR(10))).extract(‘//text()’), CHR(13) || CHR(10))
from ciudades group by nombrePais;

11-abril-2014
admin

Squirrel SQL Client

Squirrel SQL Client se trata de una aplicación java multiplataforma. Presenta un entorno muy intuitivo a través del cuál podemos configurar conexiones a distintas bases de datos.

Permite la realización de multiples conexiones simultaneas a distintas bases de datos y la realizacion de consultas sobre las mismas. Proporciona la opción de autocompletado de campos pulsando Ctrl+espacio. También permite exportar los datos a inserts, excel, csv…

Instalación:
1. Descargar SQuirreL. Es necerario tener instalado y configurado correctamente el JDK 1.6 o superior.

2. Abrir una consola de comandos (Inicio > Ejecutar > cmd)

3. Ir al directorio donde se descargó SQuirreL

4. Ejecutar el siguiente comando:

java -jar squirrel-sql-3.3.0-install.jar

5. Seguir los pasos de la instalación y en la opción de selección de paquetes a instalar, seleccionar:
DBCopy, DBDiff, MySQL, Oracle, PostgreSQL, Smart Tools, SQL Parametrisation, SQL Replace, SQL Validator, Internationalization, Spanish

Agregar driver para conectar a una Base de datos
1. Descargar el driver JDBC para la base de datos que se desea conectar.

2. Copiar el driver descargado al directorio lib del directorio de instalación de SQuirreL %squirrel_home%\lib.

3. Iniciar SQuirreL



Dirección oficial
Configurar Squirrel para MySQL
Configurar Squirrel para Oracle

31-marzo-2014
admin

Tipos de generadores de identificadores en hibernate

En hibernate podemos utilizar el elemento generator para generar identificadores únicos para instancias de la clase persistente. De requerirse algún parámetro para configurar o inicializar la instancia del generador, se pasa utilizando el elemento .

Todos los generadores implementan la interfaz org.hibernate.id.IdentifierGenerator. Algunas aplicaciones pueden decidir brindar sus propias implementaciones especializadas. Sin embargo, Hibernate provee un rango de implementaciones ya incorporadas. Los nombres de atajo para los generadores incorporados son los siguientes:

increment: genera indentificadores de tipo long, short o int que sólamente son únicos cuando ningún otro proceso está insertando datos en la misma tabla. No lo utilice en un clúster.

identity: soporta columnas de identidad en DB2, MySQL, MS SQL Server, Sybase y HypersonicSQL. El identificador devuelto es de tipo long, short o int.

sequence: usa una secuencia en DB2, PostgreSQL, Oracle, SAP DB, McKoi o un generador en Interbase. El identificador devuelto es de tipo long, short o int.

hilo: utiliza un algoritmo alto/bajo para generar eficientemente identificadores de tipo long, short o int, dada una tabla y columna como fuente de valores altos (por defecto hibernate_unique_key y next_hi respectivamente). El algoritmo alto/bajo genera identificadores que son únicos sólamente para una base de datos particular.

seqhilo: utiliza un algoritmo alto/bajo para generar eficientemente identificadores de tipo long, short o int, dada una secuencia de base de datos.

uuid: utiliza un algoritmo UUID de 128 bits para generar identificadores de tipo cadena, únicos dentro de una red (se utiliza la direccón IP). El UUID se codifica como una cadena hexadecimal de 32 dígitos de largo.

guid: utiliza una cadena GUID generada por base de datos en MS SQL Server y MySQL.

native: selecciona identity, sequence o hilo dependiendo de las capacidades de la base de datos subyacente.

assigned: deja a la aplicación asignar un identificador al objeto antes de que se llame a save(). Esta es la estrategia por defecto si no se especifica un elemento < generator>.

select: recupera una clave principal asignada por un disparador de base de datos seleccionando la fila por alguna clave única y recuperando el valor de la clave principal.

foreign: utiliza el identificador de otro objeto asociado. Generalmente se usa en conjunto cón a una asociación de clave principal < one-to-one>.

sequence-identity: una estrategia de generación de secuencias especilizadas que utiliza una secuencia de base de datos para el valor real de la generación, pero combina esto junto con JDBC3 getGeneratedKeys para devolver el valor del identificador generado como parte de la ejecución de la declaración de inserción. Esta estrategia está soportada sólamente en los controladores 10g de Oracle destinados para JDK1.4. Los comentarios en estas declaraciones de inserción están desactivados debido a un error en los controladores de Oracle.

Ejemplo 1:
Si tenemos una clave primaria “idAplicacion” en MySQL con la propiedad auto_increment, se mapearia así:

//Mapeo usando anotaciones
        @Id
        @GeneratedValue
        private Integer idAplicacion;

//Mapeo en fichero hbm
        < id name="idAplicacion" type="int" unsaved-value="0">
            < column name="idAplicacion" precision="5" scale="0"/>
	    < generator class="identity"/>
        < /id>

Ejemplo 2:
Si tenemos una clave primaria “idAplicacion” en una BD oracle y queremos asignarle una secuencia llamada SEQ_ID_APLICACION, se mapearía así:

//Mapeo usando anotaciones
        @Id
        @SequenceGenerator(name="seq", sequenceName="SEQ_ID_APLICACION")
        @GeneratedValue(strategy=GenerationType.AUTO, generator="seq")
        private Integer idAplicacion;

//Mapeo en fichero hbm
        
                
                
                        SEQ_ID_APLICACION
                
        

Fuente
Explicación de diferentes generadores con ejemplos

18-septiembre-2012
admin

Importar un esquema a la BD mediante un fichero DMP utilizando TOAD

Abre el menú “Database” – “Import” – “Import Utility Wizard” y elige la opción “Import users”. A continuación, en el combo “From” escribe el nombre del usuario que se quiere importar de dentro del archivo DMP y en el combo “To” escribe el usuario al cual se añadirán los datos.
Por último, pulsa “Add” para que la operación aparezca en la lista y “Next” dos veces y llegarás a la ventana donde se elige el archivo DMP (“Export file name”). Las demás opciones se pueden ignorar y con “Next” debe comenzar la restauración.

3-febrero-2012
admin

Para ver las sesiones abiertas en oracle

SELECT username, status, sid, serial# FROM v$session;

Así, para ver únicamente las sesiones abiertas con el usuario que se está utilizando en la aplicación. Sería:

SELECT * FROM v$session WHERE username LIKE ‘XXXXXXX’;

(Nota: Se deben tener permisos de SYS.)

Categorias

Linkedin