• Categoría: Oracle SQL
  • Visto: 23615

Ratio: 4 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio desactivado
 

La función SQL WEEK_DAY(), desarrollada por Tú Informática Fácil, devuelve el día de la semana de una fecha del argumento cadena, cadena debe ser una de caracteres de tipo VARCHAR2, opcionalmente se puede pasar como segundo argumento la mascara de la fecha.

 

Sintaxis

 

WEEK_DAY(cadena, [mascara])

 

Propósito

 

La función devuelve el día de la semana como un tipo de dato VARCHAR2 y siempre en español, independientemente de cómo estén configuradas las variables NLS.

 

Si se produce un error la función retorna 1 y muestra el código de error y el mensaje asociado.

 

Para cargar la función en vuestro sistema seguir estos sencillos pasos:

 

1 – Descarga el fichero week_day.rar, descomprímelo y guárdalo con el nombre week_day.sql, el fichero contiene la función.

Función WEEK_DAY()

Funcion WEEK_DAY()

Actualizado: 17-02-2011

 

 

Descarga Relacionada

Descarga la utilidad Winrar para descomprimir

 

2 – Copia el fichero en la maquina donde esta la base de datos Oracle, si estas en entornos Linux/Unix puedes utilizar Filezilla para realizar el ftp al directorio que desees, si estas en entorno Windows ubícalo en el directorio de trabajo que prefieras.

 

3 – Conéctate a la maquina donde esta la base de datos y cámbiate al directorio donde hayas dejado el fichero week_day.sql.

 

4 – Conéctate con SQLPLUS a la base de datos con el usuario que vaya a ser el OWNER de la función, el usuario debería tener estos privilegios, CREATE ANY PROCEDURE, ALTER ANY PROCEDURE, DROP ANY PROCEDURE y EXECUTE ANY PROCEDURE.

 

5 – Desde SQLPLUS ejecuta lo siguiente.

 


SQL> @week_day
Function created.


 

6 – Si necesitas que otros usuarios de la base de datos ejecuten la función tendrán que tener el privilegio EXECUTE ANY PROCEDURE.

 

Ejemplos:

 

Llamada a la función WEEK_DAY() con una fecha en formato cadena.

 


SQL> SELECT WEEK_DAY('31/12/1999') Dia FROM DUAL;
DIA
--------------------------------------------------------------------------------
VIERNES


 

En esta llamada le pasamos también la mascara, en este ejemplo la mascara determina que la fecha esta en día, mes y año.

 


SQL> SELECT WEEK_DAY('02/10/1998', 'MM/DD/YYYY') Dia FROM DUAL;
DIA
--------------------------------------------------------------------------------
MARTES


 

En este otro ejemplo provoco un error, le paso un mes erróneo a la función WEEK_DAY().

 


SQL> SELECT WEEK_DAY('22/10/1998', 'MM/DD/YYYY') Dia FROM DUAL;
DIA
--------------------------------------------------------------------------------
1

-1843 : ORA-01843: not a valid month


 

Con este ejemplo vemos como llamar a la función desde un procedimiento almacenado.

 


SQL> CREATE OR REPLACE procedure demo_fun IS
BEGIN
DBMS_OUTPUT.PUT_LINE('El día de la semana de la fecha 31/12/2000 es -> ' || week_day('31/12/2000'));
END;
/

Procedure created.

SQL> execute demo_fun
El dia de la semana de la fecha 31/12/2000 es -> DOMINGO

PL/SQL procedure successfully completed.


  

Nota

 Compatibilidad: Oracle 9i, Oracle 10g y Oracle 11g