Invocar procedimiento PLSQL desde JAVA con parámetros de tipo ARRAY de entrada y salida

Comparto un tip que les puede ayudar al momento de trabajar con JAVA y ORACLE.

En ORACLE tenemos esto:

CREATE OR REPLACE TYPE ESQUEMA.OBJ_OBJETO AS OBJECT (
ID VARCHAR2(10),
TYPE_CODE VARCHAR2(10),
MESSAGE VARCHAR2(4000)
);

CREATE OR REPLACE TYPE ESQUEMA.TYP_TABLA AS TABLE OF PROCS.OBJ_OBJETO;

PROCEDURE PROCEDIMIENTO(
pi_data IN ESQUEMA.TYP_TABLA,
po_data OUT ESQUEMA.TYP_TABLA)

Partimos con la premisa que tenemos una conexión jdbc que se llama conection, A continuación el código de ejemplo:

OracleConnection oconn = null;
oconn = conection.unwrap(oracle.jdbc.OracleConnection.class);   //obtenemos la una conexion oracle, para manejar los objetos, de otra manera no sera posible continuar
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor(“ESQUEMA.TYP_TABLA”, oconn);
StructDescriptor structDescriptor = StructDescriptor.createDescriptor(“ESQUEMA.OBJ_OBJETO”, oconn);

Object[] iStructs = new Object[2];  //este sera la base del ARRAY
Object[] iAttributes = new Object[3]; // este es un registro del ARRAY

iAttributes[0] = “123”;
iAttributes[1] = “CODE”;
iAttributes[2] = “TEXTO”;
iStructs[0] = new STRUCT(structDescriptor,oconn,iAttributes);

iAttributes[0] = “456”;
iAttributes[1] = “COLE”;
iAttributes[2] = “NUEVO TEXTO”;
iStructs[1] = new STRUCT(structDescriptor,oconn,iAttributes);

ARRAY datosIn = new ARRAY(descriptor,oconn,iStructs);

CallableStatement cs = oconn.prepareCall(“{call ESQUEMA.PAQUETE.PROCEDIMIENTO(?, ?)}”);
cs.setArray(1, datosIn);  //parametro de entrada
cs.registerOutParameter(2, Types.ARRAY, “ESQUEMA.TYP_TABLA”); //parametro de salida
cs.execute();

Object[] data = cs.getObject(2)!=null? (Object[]) ((Array) cs.getObject(2)).getArray() :null;
// si nos devuelve datos, mostramos en consola
if(data!=null){
System.out.println(“quantity resp: “+data.length);

for(Object tmp : data) {
Struct row = (Struct) tmp;
Object[] values = row.getAttributes();
System.out.println( “ID = ” + values[0]);
System.out.println( “TYPE_CODE = ” + values[1]);
System.out.println( “MESSAGE = ” + values[2]);
System.out.println(“—“);
}

}
cs.close();
conection.close();
oconn.close();

Espero les ayude. Saludos.

 

Habilitar/deshabilitar escritura y lectura de Dispositivos de almacenamiento extraíbles

Muchas veces por temas de seguridad de la información es necesario deshabilitar los puertos USB de un computador, con este pequeño manual aprenderá a desactivar los permisos de lectura y escritura para los dispositivos de almacenamiento extraíble USB mediante el editor de directivas de grupo de Windows 7.

Siga los siguientes pasos:

1. Abra el EDITOR DE DIRECTIVAS DE GRUPO LOCAL (búsquelo en el panel de control)

2. En la ventana EDITOR DE DIRECTIVAS DE GRUPO LOCAL ingresamos a la siguiente ruta:

Configuración del equipo/Planillas administrativas/Sistema/Acceso de almacenamiento extraíble 

3. Aquí nos interesa la configuración de las siguientes directivas:

– Discos extraíbles: denegar acceso de lectura 
– Discos extraíbles: denegar acceso de escritura

4. Modificamos los valores deprendiendo de nuestras necesidades.

 

También podemos hacer todo esto a través del Editor de registro.

Para denegar acceso:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}]
“Deny_Read”=dword:00000001
“Deny_Write”=dword:00000001

Para conceder acceso:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}]
“Deny_Read”=dword:00000000
“Deny_Write”=dword:00000000

Spotify se expande en América Latina y llega a 14 nuevos países de la región

Spotify está imparable. Pocos días después de anunciar con la boca pequeña su expansión en América Latina y acto seguido de hacer pública su aplicación móvil gratuita, el servicio de música en streaming ha hecho oficial su lanzamiento inmediato en Bolivia, Chile, Colombia, Costa Rica, República Dominicana, Ecuador, El Salvador, Guatemala, Honduras, Nicaragua, Panamá, Paraguay, Perú y Uruguay. Esta es una de las expansiones más ambiciosas en la historia de la compañía, que este año realizó su primera incursión regional con su aparición en Argentina y México.

A estos países se suman algunos mercados europeos en los que tampoco estaba presente Spotify; los usuarios de Bulgaria, Chipre, Eslovaquia, Hungría, Malta y República Checa también podrán acceder ahora a todas las canciones ofrecidas por el popular servicio. En total, Spotify ya está presente en 55 mercados de todo el mundo. El anuncio de hoy deja a Rdio en una situación algo incómoda, y es que su gran rival se jactaba hoy mismo de haber superado a los chicos de la firma sueca con su última expansión internacional.

Los planes de expansión de Spotify se han anunciado al final de la conferencia y prácticamente sin ofrecer mayores detalles, así que todavía no podemos hablar de precios ni posibles características específicas de cada país. Afortunadamente, Spotify ha prometido que todos los anuncios realizados en la rueda de prensa de hoy entrarán en vigor hoy mismo, por lo que es de imaginar que las páginas regionales serán abiertas en cualquier momento.

Query que devuelve todos los días de un determinado mes

Desarrollando algunos reportes, vi la necesidad de contar con un query que devuelva los días de un determinado mes:

SELECT TRUNC (SYSDATE, ‘MON’)+rownum-1 AS dias_del_mes
FROM DUAL
WHERE to_char(SYSDATE,’MON’)=to_char(TRUNC (SYSDATE, ‘MON’)+rownum-1,’MON’)
CONNECT BY LEVEL <= 31;

Devolverá algo asi:

DIAS_DEL_MES
——————–
01/10/2013
02/10/2013
03/10/2013
04/10/2013

Les puede ser útil.

Samsung Galaxy Ace 2 y Galaxy mini 2 presentados oficialmente

Samsung Galaxy Ace 2 y Galaxy mini 2 presentados oficialmente

A medida que transcurren los días y nos acercamos peligrosamente a la esperada celebración del MWC 2012, los fabricantes siguen calentando motores y de paso, el ambiente. Hoy le toca el turno a Samsung, que acaba de hacer oficiales dos nuevos terminales: se trata del Galaxy Ace 2 (a la izquierda en la foto) y el Galaxy mini 2 (derecha). El Ace 2 tiene las mejores especificaciones y cuenta con un procesador de doble núcleo a 800 MHz, HSDPA 14.4, GPS/GLONASS, batería de 1.500 mAh, 4 GB de almacenamiento y pantalla WVGA de 3,8 pulgadas.

El Mini 2, por su parte, cuenta con conectividad HSDPA 7.2 Mbps, procesador a 800 MHz, batería de 1.300 mAh y pantalla HVGA de 3,8 pulgadas. Ambos saldrán a la venta esta primavera bajo Android 2.3, llegando el Ace 2 al Reino Unido en abril y el Mini 2 a Francia en marzo, y con posterioridad, al resto de los mercados.

Confirmado NO HABRA Ice Cream Sandwich para Galaxy Ace

Muy Buenas noticias. Luego de la consulta via twitter de un usuario @iSaifu a @SamsungMobileME. Samsung confirma la actualizacion de nuestros Galaxy Ace a ICS 4.

Acá esta el link del tweet

Actualizacion:

La gente de Samsung elimino el tweet y confirmo que no habrá actualización para el Galaxy Ace… que pena.

 

Vía:  AceTips