Finalmente tuve la oportunidad de hacer el equivalente en Oracle de la tabla de tiempo. Asume que hay autoconversion de caracteres a numeros, si no es así en la base de datos que están usando habría que añadirle el TO_NUMBER antes de cada TO_CHAR para las columnas numéricas.
/* Tabla de Tiempo en Oracle Adrián Ceballos HaciendoCubos.com */ CREATE TABLE Tiempo ( TiempoID int NOT NULL, Fecha date NOT NULL, Año int NOT NULL, MesID int NOT NULL, Mes varchar2(10) NOT NULL, Cuarto int NOT NULL, Semana int NOT NULL, NumDiaSemana int NOT NULL, DiaSemana varchar2(15) NOT NULL ); ALTER TABLE Tiempo ADD PRIMARY KEY (TiempoID);
Y el llenado de la tabla. Hay que jugar con el TO_CHAR para cambiar el día de la semana. En Bochgoch pueden encontrar una excelente referencia de los formatos usados en el TO_CHAR.
declare
FechaFin date;
Fecha date;
begin
Fecha := to_date('2000-01-01','yyyy-MM-dd');
FechaFin := to_date('2010-12-31','yyyy-MM-dd');
WHILE Fecha < FechaFin LOOP
DBMS_OUTPUT.PUT_LINE('Mes: ' || TO_CHAR(Fecha,'YYYYMMDD') );
INSERT INTO Tiempo
SELECT
TO_CHAR(Fecha,'YYYYMMDD') AS TIEMPO_ID,
Fecha,
TO_CHAR(Fecha,'YYYY') AS YEAR,
TO_CHAR(Fecha,'YYYYMM') AS MES_ID,
TO_CHAR(Fecha,'MON-YY') AS MES,
TO_CHAR(Fecha,'YYYYQ') AS TRIMESTRE,
TO_CHAR(Fecha, 'YYYYIW') AS SEMANA,
TO_CHAR(Fecha,'D'),
TO_CHAR(Fecha,'DY') AS DIA_SEMANA
FROM DUAL;
SELECT Fecha+1 into Fecha from dual;
end loop;
end;
Technorati tags: Oracle, data warehouse

Excelente procedimiento, solo hay que quitar el codigo HTML que se incrusto en el procedimeinto , me sirvio bastante este procedimiento, tks
esta línea cambia el idioma a Ingles:
alter session set nls_territory=america nls_language=american;
Hola Adrian,
Tengo entendido que Artus soporta bases de datos de Oracle… es muy probable que proximamente este trabajando en un proyecto asi y la verdad no tengo la menor idea de como funcione esto. Me gustaria saber si tienes información al respecto (diseño e importacion a Artus).
Gracias!!! =)
Hola Adriana,
mmm, como te lo explico, trabaja igualito que si fuera SQLServer o MySQL.
Has trabajado antes con Artus? puedes trabajar en Oracle con el modelo rolap, por ahi anda un post que dice como hacer un cubo en Artus. Este te servirá bastante.
sasludos