martes, 17 de noviembre de 2009


Enumeraciones y Definir Tipos Constantes de una Clase en Java


Hay ocaciones en que tenemos que representar varios estados en el sistema, hacerlo con variables tipo enteras puede generar errores de programación, por eso algunos lenguajes de programación tienen variables tipo enumeracion (enum en Java,C++ y C#)

Una Buena practica de programacion es usar los enumeradores para esas ocaciones, pero cuando no los tiene el lenguaje, o cuando la version del lenguaje no lo soporta ( Java JDK 1.4 ) podemos usar las clases y las constantes para ello.

Ejemplo en Java sería:

public class Direccion {
public static final Direccion HORIZONTAL =new Direccion();
public static final Direccion VERTICAL =new Direccion();
private Direccion(){}
}

Se usaría así:

Direccion direccion= Direccion. HORIZONTAL ;

Fuente:

sábado, 14 de noviembre de 2009


Obtener las Constraints de BD de Oracle


Para sabes que llaves foráneas tenemos en nuestra Base de Datos , podemos usar el comando desc para ver la tabla ALL_CONSTRAINTS.

desc all_constraints;

Lo que nos dará algo como esto en el Script Output:

Name Null Type
------------------------------ -------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
OWNER NOT NULL VARCHAR2(30)
CONSTRAINT_NAME NOT NULL VARCHAR2(30)
CONSTRAINT_TYPE VARCHAR2(1)
TABLE_NAME NOT NULL VARCHAR2(30)
SEARCH_CONDITION LONG()
R_OWNER VARCHAR2(30)
R_CONSTRAINT_NAME VARCHAR2(30)
DELETE_RULE VARCHAR2(9)
STATUS VARCHAR2(8)
DEFERRABLE VARCHAR2(14)
DEFERRED VARCHAR2(9)
VALIDATED VARCHAR2(13)
GENERATED VARCHAR2(14)
BAD VARCHAR2(3)
RELY VARCHAR2(4)
LAST_CHANGE DATE
INDEX_OWNER VARCHAR2(30)
INDEX_NAME VARCHAR2(30)
INVALID VARCHAR2(7)
VIEW_RELATED VARCHAR2(14)

20 rows selected

Asi que para ver el contenido de la tabla solo tenemos que hacer:

Select
owner,
constraint_name,
constraint_type,
table_name,
r_owner,
r_constraint_name
From
all_constraints ;

Para que nos regrese todas las constraints de la BD.

Esto nos sirve cuando tenemos un error de llaves foraneas del tipo :

ORA-02291: integrity constraint (DUMMYDB.SYS_C0012345) violated - parent key not found

Para saver cual es la tabla con filas faltantes o datos erroneos que nos marca el error , solo tenemos que hacer:

Select
owner,
constraint_name,
constraint_type,
table_name,
r_owner,
r_constraint_name
From
all_constraints
Where
constraint_name='SYS_C0012345';

Y nos dirá el nombre de la tabla con el problema en la columna r_constraint_name .



Fuente: