Import file: expdat.dmp >
jueves, 25 de octubre de 2012
Como salimos de: Import file: expdat.dmp >
Import file: expdat.dmp >
jueves, 17 de mayo de 2012
String de conexión JDBC para Oracle RAC
(ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=host2) (PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service)
(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC))))
jueves, 26 de abril de 2012
Empezando a trabajar con Fechas
Teniendo entendido este concepto nos va a resultar más fácil la explicación.
'
Ejemplo: select sysdate + 1 from dual;
Ejemplo: select sysdate + 3/24 from dual;
Ejemplo: select sysdate + 25/1440 from dual;
miércoles, 18 de enero de 2012
ORA-02287: sequence number not allowed here
Comencemos por la causa del mismo., curre cuando intentamos utilizar una secuencia donde no está permitido hacerlo.
Para ser un poco más explícitos, NO podemos utilizar secuencias en los siguientes casos:
- Dentro de una sentencias SELECT:
* En la claúsula WHERE
* En una claúsula DISTINCT
* En un Sub-Query
- En una VISTA o SNAPSHOT
- En una condición de DEFAULT o CHECK de una tabla
(Cabe aclarar que existen más excepciones pero que estas son las mas representativas)
Algunas posibles soluciones para nuestro problema serian:
- Si necesitamos utilizar la secuencia para ser insertada tras la creación de las filas de una tabla lo que podemos hacer es utilizar un trigger "before insert" para que realice el trabajo.
- Si quisiéramos una secuencia en una vista podríamos crear la mismas sin la secuencia y luego al momento de llamarla utilizarla (ej: select a, b, "secuencia" from "nuestra vista").
- Si quisiéramos usar la secuencia en un query con una DISTINCT lo que podemos hacer es utilizar este en un Sub-Query y la secuencia en el query principal
Gondalf.
martes, 15 de noviembre de 2011
Parametros EXCLUDE e INCLUDE en DataPump
jueves, 10 de noviembre de 2011
Diferencias entre los CharacterSet WE8ISO8859P1 y WE8MSWIN1252
Hilando un poco más fino, podemos decir que el characterset WE8MSWIN1252 posee 27 caracteres adicionales.
A continuación vemos la lista con las 27 diferencias:
Win-1251 | Unicode Char | Charact | Descripción |
0x80 | 0x20AC | [€] [€] | EURO SIGN |
0x82 | 0x201A | [‚] [‚] | SINGLE LOW-9 QUOTATION MARK |
0x83 | 0x0192 | [ƒ] [ƒ] | LATIN SMALL LETTER F WITH HOOK |
0x84 | 0x201E | [„] [„] | DOUBLE LOW-9 QUOTATION MARK |
0x85 | 0x2026 | […] […] | HORIZONTAL ELLIPSIS |
0x86 | 0x2020 | [†] [†] | DAGGER |
0x87 | 0x2021 | [‡] [‡] | DOUBLE DAGGER |
0x88 | 0x02C6 | [ˆ] [ˆ] | MODIFIER LETTER CIRCUMFLEX ACCENT |
0x89 | 0x2030 | [‰] [‰] | PER MILLE SIGN |
0x8A | 0x0160 | [Š] [Š] | LATIN CAPITAL LETTER S WITH CARON |
0x8B | 0x2039 | [‹] [‹] | SINGLE LEFT-POINTING ANGLE QUOTATION MARK |
0x8C | 0x0152 | [Œ] [Œ] | LATIN CAPITAL LIGATURE OE |
0x8E | 0x017D | [Ž] [Ž] | LATIN CAPITAL LETTER Z WITH CARON |
0x91 | 0x2018 | [‘] [‘] | LEFT SINGLE QUOTATION MARK |
0x92 | 0x2019 | [’] [’] | RIGHT SINGLE QUOTATION MARK |
0x93 | 0x201C | [“] [“] | LEFT DOUBLE QUOTATION MARK |
0x94 | 0x201D | [”] [”] | RIGHT DOUBLE QUOTATION MARK |
0x95 | 0x2022 | [•] [•] | BULLET |
0x96 | 0x2013 | [–] [–] | EN DASH |
0x97 | 0x2014 | [—] [—] | EM DASH |
0x98 | 0x02DC | [˜] [˜] | SMALL TILDE |
0x99 | 0x2122 | [™] [™] | TRADE MARK SIGN |
0x9A | 0x0161 | [š] [š] | LATIN SMALL LETTER S WITH CARON |
0x9B | 0x203A | [›] [›] | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK |
0x9C | 0x0153 | [œ] [œ] | LATIN SMALL LIGATURE OE |
0x9E | 0x017E | [ž] [ž] | LATIN SMALL LETTER Z WITH CARON |
0x9F | 0x0178 | [Ÿ] [Ÿ] | LATIN CAPITAL LETTER Y WITH DIAERESIS |
Esto quiere decir que si necesitamos utilizar por ejemplo el simbolo del Euro y nuestra base esta configurada en P1 deberiamos modificar el characterset de la base siguiente los siguientes pasos:
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> Alter DATABASE OPEN;
SQL> ALTER DATABASE CHARACTER SET WE8MSWIN1252;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
Espero les haya servido.
Saludos!
Gondalf
martes, 8 de noviembre de 2011
Un poquito de PL/SQL, Packages
Una de las ventajas que nos brinda como varios lenguajes de programación es la MODULARIDAD. Permitiendo agrupaciones lógicas y un diseño más sencillo, eficaz y un mejor rendimiento.
Otra ventaja es la de permitirnos la SOBRECARGA* de modo que podemos crear procedimientos o funciones con el mismo nombre y con diferentes parámetros en el mismo paquete
DESCRIPCION
Un paquete está compuesto de dos partes:
- Especificación
- Cuerpo
A su vez este puede contener métodos privados y públicos, todo procedimiento declarado en la "Especificación" tiene carácter público; mientras que todo procedimiento declarado y desarrollado en el cuerpo tiene carácter privado.
Las variable definida dentro de un subprograma son locales, mientras que las definidas fuera son globales.
SINTAXIS
Cabecera:
CREATE [o REPLACE ] PACKAGE "nombre_del_paquete"
IS | AS
< declaración de variables públicas >
< declaración de los miembros y funciones públicas >
END "nombre_del_paquete";
Cuerpo:
CREATE [ o REPLACE ] PACKAGE BODY "nombre_del_paquete"
IS | AS
< declaración de las variables privadas >
< cuerpo de los miembros y funciones >
END nombre_del_paquete;
(*)La sobrecarga de métodos es la técnica mediante la cual se utiliza el mismo nombre para diferentes subprogramas dentro de un paquete.
La diferencia entre los métodos es el número y orden de parámetros.
Espero les haya servido.
Saludos!
Gondalf.