Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-07-2004
Avatar de Tino
Tino Tino is offline
Miembro
 
Registrado: may 2004
Posts: 40
Poder: 0
Tino Va por buen camino
Evaluar condiciones con Oracle PL/SQL

Tengo la tarea de evaluar una condición lógica del tipo:

Código:
('PLATÓN'='FILÓSOFO') OR (3 <> 5) AND NOT (2/3/2004 < 1/1/2005) ...
Para ello, he escrito la sig. rútina:

Código SQL [-]
FUNCTION Fu_Evalua_Condicion(p_condicion IN VARCHAR2) RETURN BOOLEAN IS
-- Evalua la condición pasada como parámetro
   vSQL VARCHAR2(300);
   vDummy VARCHAR2(1);
BEGIN 
   vSQL := 'SELECT ''X'' FROM DUAL WHERE ' || p_condicion;
   BEGIN 
     EXECUTE IMMEDIATE vSQL INTO vDummy;
     If vDummy = 'X' Then
        RETURN TRUE;
     Else
        RETURN FALSE;
     End If;
   EXCEPTION
     WHEN OTHERS THEN RETURN FALSE;
   END;   
END Fu_Evalua_Condicion;


¿Cabe una mejor solución? El rendimiento es crítico porque esta rútina será llamada muchas veces, pero no se me ocurre otra manera.

Agradezco de antemano cualquier comentario que hagaís.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:19:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi