sábado, 1 de febrero de 2014

Sentencias SQL

Con esta sentencia se puede conocer cuales instancias de base de datos se tiene en un servidor.

ORACLE 

select * from all_users;

Modificar una tabla (ALTER TABLE)

SQL SERVER
CREATE TABLE dbo.doc_exy (column_a INT ) ;
GO
INSERT INTO dbo.doc_exy (column_a) VALUES (10) ;
GO
ALTER TABLE dbo.doc_exy ALTER COLUMN column_a DECIMAL (5, 2) ;
GO
DROP TABLE dbo.doc_exy ;
GO

COMANDOS ORACLE

  • Consultar la fecha del servidor 
sysdate
  • Modificar una columna
ALTER TABLE NOMTABLE MODIFY NOMCOLUMN VARCHAR2(4000);
  • Todo sobre secuencias 
secuencias
  • Función ASCII()
ASCII() 
  • Creación de claves foraneas  
CREATE TABLE table_name ( column1 datatype null/not null, column2 datatype null/not null, ... CONSTRAINT fk_column FOREIGN KEY (column1, column2, ... column_n) REFERENCES parent_table (column1, column2, ... column_n) );
  • MAX()
Funcion Max  
  • Sensei

COMPRA Y VENTA DE VEHICULO

La transparencia es clave para vender el carro

Ofrecer el carro de manera directa es un proceso complejo que requiere tiempo. Estos son los pasos.
Por JOSÉ ALEJANDRO PÉREZ M. | Publicado el 1 de febrero de 2014
Con el desarrollo del mercado de vehículos, el crecimiento del número de marcas, las facilidades y opciones de crédito para la compra de carro, y los precios relativamente más asequibles que hace algunos años, se ha dinamizado el mercado de compra y venta de carros usados.

Muchos de quienes compran un carro nuevo han salido, previamente a vender su usado. Hay quienes lo hacen a través de los canales especializados al dejarlo como parte de su carro nuevo en el concesionario o a través de comercializadores expertos. Pero otros más buscan -dicen- maximizar el valor al que pueden vender su vehículo y lo hacen de manera directa.

Los clasificados en los periódicos, o en años más recientes, los sitios web dedicados a ofertar vehículos usados, se han convertido en vitrinas para quienes quieren poner su carro a la venta sin intermediarios.

Pero este no es un proceso tan sencillo, es más, señala el ingeniero mecánico y comercializador de vehículos por más de 25 años Jorge Enrique Pérez, que el proceso de la venta directa "se corren riesgos". Estos riesgos están asociados en la gran mayoría de los casos a no saber quién exactamente es el que quiere comprar el vehículo. Casos se han visto, explica, en los que el supuesto proceso de compra es solo una pantalla para cometer un delito o atentar contra la seguridad del vendedor que, desprevenido e ilusionado ofrece su vehículo.

1. ¿sabe usted quién quiere su carro?
Por eso, una primera recomendación que hace este experto es, en lo posible, indagar muy bien quién es el supuesto interesado en comprar el bien. Pedir referencias, averiguar si tiene procesos de infracciones pendientes por ejemplo (con su número de cédula), información que dé claridad sobre la persona con la que se plantea el potencial negocio.

Si este primer filtro lo satisface, y sigue con la idea de ofrecer y vender el carro usted mismo, debe tener en cuenta también una serie de trámites y documentos que harán que el negocio fluya de la mejor manera posible.

2. un carro sin pendientes judiciales
Uno de los factores que posibilitan la venta del carro es el estado de sus antecedentes. Estos se pueden verificar ante la Sijín de la Policía, con la conocida A-Z del carro, en la que se verifica si tiene algún tipo de problema o actuación de entes administrativos o judiciales que impidan que el carro pueda ser vendido, explica Orlando Pino, profesional universitario de la Secretaría de Transportes y Tránsito de Envigado.

A veces sucede que el carro está involucrado en un proceso de embargo y el nuevo dueño no lo conocía, y llega un momento en el que le pueden quitar el vehículo.

Agrega el funcionario que también es necesario garantizar en el proceso de la compra-venta, que se encuentre libre de pendientes de tránsito por multas y comparendos.

"Tanto el comprador como el vendedor tienen que estar a paz y salvo en el Simit, que es el sistema de información de multas e infracciones", explica el vocero de la Secretaría.

Además debe estar a paz y salvo por concepto de impuesto de vehículos y otros cargos como la semaforización.

En el caso del impuesto departamental, el estado de un vehículo puede consultarse a través del sitio web www.vehiculosantioquia.gov.co

3. inscribirse gratis en el runt
Y también ambas parte del negocio tienen que estar inscritas en el Registro Único Nacional de Tránsito (Runt). Esta inscripción es gratuita y puede hacerse en los organismos de tránsito o en algunos centros de atención especializados como CRC, por ejemplo.

4. todo respaldado en la compraventa
Como parte del proceso de compra venta, se deben sacar las improntas del carro para el proceso de traspaso. Estas son el número de chasís, el número de serie y el VIN como las más comunes. Estas improntas deben adicionarse al documento de compra venta original que, además, debe estar firmado por el vendedor y el comprador y sin enmendaduras.

En el también se precisa el valor de venta del vehículo. Además las partes deben diligenciar el formulario único nacional de tránsito que se baja de manera gratuita de la página web del Runt (www.runt.com.co) El carro debe contar también con el Seguro Obligatorio (Soat) y el certificado de la revisión técnico mecánica y de gases vigentes.

5. el traspaso no debe quedar abierto
Un proceso importante que significa evitar futuros dolores de cabeza, y en el que coinciden las fuentes consultadas, es que en el proceso de compra y venta no se deben dejar por ningún motivo los traspasos abiertos.

El diligenciar este documento garantiza que el carro tiene un nuevo propietario, y todo lo que suceda con él de ahí en adelante ya será responsabilidad de quien figure como el nuevo dueño.

¿CÓMO FUNCIONA?

EL PRECIO DEBE SER RACIONAL

Uno de los factores más complejos para vender un carro es fijar su precio. Jorge Enrique Pérez señala que la mejor manera de hacerlo es tomar varias referencias que den un indicador del rango en el que se encuentra el vehículo. Estas referencias están basadas en información de portales de compra y venta para ver carros similares y sus valores. Igualmente consultar los medios de información especializados con tablas de precios. Y una tercera fuente son los concesionarios a través de sus áreas de usados que también dan un punto de mira para fijar el valor. Agrega que el precio también depende del estado del carro, su kilometraje (en promedio entre 10 mil y 12 mil kilómetros por año) y el origen de las placas. "Y siempre pida un precio un poco más alto del que espera para que pueda hacer la rebaja que en el caso de Antioquia siempre piden los clientes".

EN DEFINITIVA

Si decide vender su actual carro por cuenta propia, sin acudir a ningún tipo de intermediario especializado, tenga en cuenta los pasos que se sugieren para que pueda tener éxito

jueves, 9 de enero de 2014

Tipos de datos Oracle 11g

El cuadro siguiente resume los tipos de datos en Oracle 11g, esta tabla también es valida para versiones anteriores como Oracle 10g.

Tabla resumen de tipos de datos.


Tipo Dato Descripción
VARCHAR2(size [BYTE | CHAR])
Cadena de caracteres de longitud variable que tiene como  tamaño máximo el valor de size en BYTE o CHAR. El tamaño máximo es de 4000 bytes o caracteres, y la mínima es de 1 byte o un carácter. Se debe especificar el tamaño de para VARCHAR2.
NVARCHAR2(size)
Cadena de caracteres Unicode de longitud variable con size como máximo tamaño de longitud. El número de bytes que pueden ser hasta dos veces el tamaño de codificación AL16UTF16 y tres veces el tamaño de la codificación UTF8. El tamaño máximo está determinado por la definición del juego de caracteres nacional, con un límite máximo de 4000 bytes. Se debe especificar el size de NVARCHAR2.
NUMBER [ (p [, s]) ]
Número con p precisión (parte entera) y s escala (parte decimal). La precisión p puede variar de 1 a 38. La s escala puede variar desde -84 hasta 127. Tanto la precisión y la escala se encuentran en dígitos decimales. Un valor numérico requiere 1 a 22 bytes.
FLOAT [(p)]
Un subtipo del tipo de datos NUMBER con precisión p. Un valor de coma flotante se representa internamente como un NUMBER. La precisión p puede variar desde 1 hasta 126 dígitos binarios. Un valor flotante requiere 1 a 22 bytes.
LONG
Tipo de datos de caracteres de longitud variable de hasta 2 gigabytes, o 231 -1 bytes. Permanece para compatibilidad con versiones anteriores de Oracle.

DATE
Intervalo de fechas válidas del 1 de enero de 4712 antes de Cristo a el 31 de diciembre de 9999. El formato por defecto se determina explícitamente por el parámetro NLS_DATE_FORMAT o implícitamente por el parámetro NLS_TERRITORY. El tamaño es de 7 bytes. Este tipo de datos contiene los campos de fecha y hora AÑO, MES, día, hora, minuto y segundo. No tiene fracciones de segundo o de una zona horaria.
BINARY_FLOAT
Número en coma flotante de 32 bits. Este tipo de datos requiere 4 bytes.
BINARY_DOUBLE
Número en coma flotante de 64 bits. Este tipo de datos se requieren de 8 bytes.
TIMESTAMP [(fractional_seconds_precision)] Año, mes y día como valores de la fecha, así como la hora, minutos y segundos como valores de tiempo, donde fractional_seconds_precision es el número de dígitos en la parte fraccionaria del segundo del campo datetime. Los valores aceptados de fractional_seconds_precision son del 0 al 9. El valor por defecto es 6. El formato por defecto se determina explícitamente por el parámetro NLS_TIMESTAMP_FORMAT o implícitamente por el parámetro NLS_TERRITORY. El tamaño es de 7 o 11 bytes, dependiendo de la precisión. Este tipo de datos contiene los campos datetime AÑO, MES, DIA, HORA, MINUTO y SEGUNDO. Contiene las fracciones de segundo, pero no tiene una zona horaria.
TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE
Todos los valores de TIMESTAMP, así como el valor de tiempo de desplazamiento de la zona, donde fractional_seconds_precision es el número de dígitos en la parte fraccionaria del segundo del campo datetime. Los valores aceptados son del 0 al 9. El valor por defecto es 6. El formato por defecto se determina explícitamente por el parámetro NLS_TIMESTAMP_FORMAT o implícitamente por el parámetro NLS_TERRITORY. El tamaño se fija en 13 bytes. Este tipo de datos contiene los campos datetime AÑO, MES, DIA, HORA, MINUTO, SEGUNDO, TIMEZONE_HOUR y TIMEZONE_MINUTE. Cuenta con las fracciones de segundo y una zona horaria explícita.
TIMESTAMP [(fractional_seconds)] WITH LOCAL TIME ZONE
Todos los valores de TIMESTAMP WITH TIME ZONE, con las siguientes excepciones:
* Los datos se normalizan con la zona horaria de base de datos cuando se almacenan en la base de datos.
* Cuando se recuperan los datos, los usuarios ven los datos en la zona de tiempo de la sesión.
El formato por defecto se determina explícitamente por el parámetro NLS_TIMESTAMP_FORMAT o implícitamente por el parámetro NLS_TERRITORY. El tamaño es de 7 o 11 bytes, dependiendo de la precisión.
INTERVAL YEAR [(year_precision)] TO MONTH
Almacena un período de tiempo en años y meses, donde year_precision es el número de dígitos en el campo datetime AÑO. Los valores aceptados son del 0 al 9. El valor predeterminado es 2. El tamaño se fija en 5 bytes.
INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds)]
Almacena un período de tiempo en días, horas, minutos y segundos, donde
* day_precision es el número máximo de dígitos en el campo datetime DÍA. Los valores aceptados son del 0 al 9. El valor predeterminado es 2.
* fractional_seconds_precision es el número de dígitos en la parte fraccionaria del campo SEGUNDO. Los valores aceptados son del 0 al 9. El valor por defecto es 6.

El tamaño se fija en 11 bytes.
RAW(size)
Datos binarios sin formato de longitud size. El tamaño máximo es de 2000 bytes. Se debe especificar el tamaño de un valor RAW.
LONG RAW
Datos binarios de tipo RAW de longitud variable hasta 2 gigabytes.
ROWID
Cadena en base 64 que representa la dirección única de una fila en la tabla. Este tipo de datos es principalmente para los valores devueltos por la pseudo columna ROWID.
UROWID [(size)]
Cadena en base 64 que representa la dirección lógica de una fila de una tabla de índice organizado. El tamaño opcional es el tamaño de una columna de tipo UROWID de Oracle. El tamaño máximo y por defecto es de 4000 bytes.
CHAR [(size [BYTE | CHAR])]
Cadena de caracteres de longitud fija de size bytes de tamaño o size de caracteres. El tamaño máximo es de 2000 bytes o caracteres, el tamaño predeterminado y mínimo es de 1 byte.
NCHAR[(size)]
Cadena de caracteres de longitud fija de size caracteres de tamaño de largo. El número de bytes pueden ser hasta dos veces el tamaño de codificación AL16UTF16 y tres veces el tamaño de la codificación UTF8. El tamaño máximo está determinado por la definición del juego de caracteres nacional, con un límite máximo de 2000 bytes. El tamaño predeterminado y mínimo es de un carácter.
CLOB
Un objeto de tipo LOB que contiene caracteres de un byte o multibyte. Son compatibles tanto de ancho fijo y conjuntos de ancho variable de caracteres, con el carácter de base de datos establecida. El tamaño máximo es (4 gigabytes - 1) * (tamaño del bloque de la base de datos).
NCLOB
Un objeto de tipo LOB que contiene caracteres Unicode. Son compatible tanto de ancho fijo y conjuntos de ancho variable de caracteres, con el conjunto base de datos de carácter nacional. El tamaño máximo es (4 gigabytes - 1) * (tamaño del bloque de la base de datos). Guarda los datos nacionales sobre el conjunto de caracteres.
BLOB
Un objeto de tipo LOB binario. El tamaño máximo es (4 gigabytes - 1) * (tamaño del bloque de la base de datos).
BFILE
Contiene un localizador a un archivo binario almacenado fuera de la base de datos. Permite flujo de bytes de E/S para el acceso a LOB externos que residen en el servidor de base de datos. El tamaño máximo es de 4 gigabytes.
Fuente

jueves, 12 de diciembre de 2013

Secuencias de Tablas

SECUENCIAS EN TABLAS DE ORACLE


Una secuencia de una tabla en la base de datos de Oracle, es un consecutivo que se quiere llevar de cada uno de los registros que vamos a ingresar en dicha tabla. Para esto creamos la sencuencia de la siguiente forma:

create sequence NOMBRESECUENCIA
  start with VALORENTERO
  increment by VALORENTERO
  maxvalue VALORENTERO
  minvalue VALORENTERO
  cycle | nocycle;

- La cláusula "start with" indica el valor desde el cual comenzará la generación de números secuenciales. Si no se especifica, se inicia con el valor que indique "minvalue".

- La cláusula "increment by" especifica el incremento, es decir, la diferencia entre los números de la secuencia; debe ser un valor numérico entero positivo o negativo diferente de 0. Si no se indica, por defecto es 1.

- "maxvalue" define el valor máximo para la secuencia. Si se omite, por defecto es 99999999999999999999999999.

- "minvalue" establece el valor mínimo de la secuencia. Si se omite será 1.

- La cláusula "cycle" indica que, cuando la secuencia llegue a máximo valor (valor de "maxvalue") se reinicie, comenzando con el mínimo valor ("minvalue") nuevamente, es decir, la secuencia vuelve a utilizar los números. Si se omite, por defecto la secuencia se crea "nocycle".

Si no se especifica ninguna cláusula, excepto el nombre de la secuencia, por defecto, comenzará en 1, se incrementará en 1, el mínimo valor será 1, el máximo será 999999999999999999999999999 y "nocycle".

En el siguiente ejemplo creamos una secuencia llamada "sec_codigolibros", estableciendo que comience en 1, sus valores estén entre 1 y 99999 y se incrementen en 1, por defecto, será "nocycle":

 create sequence sec_codigolibros
  start with 1
  increment by 1
  maxvalue 99999
  minvalue 1;

Si bien, las secuencias son independientes de las tablas, se utilizarán generalmente para una tabla específica, por lo tanto, es conveniente darle un nombre que referencie a la misma.

Otro ejemplo:

 create sequence sec_numerosocios
  increment by 5
  cycle;

La secuencia anterior, "sec_numerosocios", incrementa sus valores en 5 y al llegar al máximo valor recomenzará la secuencia desde el valor mínimo; no se especifican las otras cláusulas, por lo tanto, por defecto, el valor mínimo es 1, el máximo 999999999999999999999999999 y el valor inicial es 1.

Dijimos que las secuencias son tablas; por lo tanto se accede a ellas mediante consultas, empleando "select". La diferencia es que utilizamos pseudocolumnas para recuperar el valor actual y el siguiente de la secuencia. Estas pseudocolumnas pueden incluirse en el "from" de una consulta a otra tabla o de la tabla "dual".

Para consultar el próximo valor de la secuencia, ejecutamos la siguiente consulta:
select nombreSecuencia.nextval from dual;

Para consulta el valor actual de la secuencia, ejecutamos la siguiente consulta:
select nombreSecuencia.currval from dual;

Referencia:  oracleya