首页 > 解决方案 > plsql 存储过程,输入参数 date_of_birth 为 'DD-MM-YYYY' 格式的 varchar

问题描述

create or replace procedure pr1(i in varchar,o out sys_refcursor)
as begin
open o for
select sid,sname
from students
where dob=i;
end;
/


variable x refcursor

exec pr1(i=>dob,o=>:x) 实际上我不知道如何在参数表中给出日期输入????在学生表中显示详细信息???

标签: sqlplsql

解决方案


实际的 DOB 参数将是根据给定格式模型格式化的字符串。该模型(即它的字符串表示形式)在查询中用于在输入字符串和日期类型的 db 列之间正确转换(后者当然是猜测)。

您的代码(以及下面的代码片段)不完整,但您知道这一点。

create or replace procedure pr1(i in varchar,o out sys_refcursor)
as begin
    open o for
        select sid,sname
          from students
         where dob=TO_DATE(i, 'DD-MM-YYYY')
    ;
   end;
/

variable x refcursor
exec pr1(i => '24-12-1999', o => :x)

推荐阅读