首页 > 解决方案 > 在 SQL 函数中返回 true 或 false

问题描述

我正在学习网络管理(我不会专门从事编程,所以相关的事情对我来说很难)并且我对 SQL 中的函数有疑问。我使用 Oracle SQL Developer,我必须创建一个函数来告诉患者是否在特定日期有预约。需要的表格是(有些东西是西班牙语的,因为我的老师希望我们用 SP 写一些东西,但它们很容易理解):

        create table citas(

        id_cita number(10),

        fecha_cita date ,

        hora_cita varchar2(5),

        nombre_consulta varchar2(40),

        id_paciente number(8),

        CONSTRAINT citac_pk PRIMARY KEY (id_cita),

我正在创建的功能代码是这样的

       CREATE OR REPLACE FUNCTION fun_tiene_cita (id_paciente number, fecha_cita date) 
       return number is

       begin

       if (exists(select id_paciente from citas where id_paciente = 500 and fecha_cita = 03/03/2020)) 
       then
       return 'true';
       else
       return 'false';
       end if;
       END fun_tiene_cita;

显然,它不起作用,那么,我该怎么办?我已经尝试了我所知道的一切,但我无法解决它。

标签: sqloracle

解决方案


你应该返回 varchar2

   CREATE OR REPLACE FUNCTION fun_tiene_cita (id_paciente number, fecha_cita date) 
   return varchar2 is

   begin

       if (exists(select id_paciente from citas where id_paciente = 500 and fecha_cita = to_date('03/03/2020'))) 
       then
          return 'true';
       else
         return 'false';
       end if;
   END;

推荐阅读