这个功能在做什么

时间:2018-09-12 14:09:47

标签: sql oracle function

我是函数的新手,想知道是否有人可以告诉我该函数在做什么?它将'8/20/20118'转换为0。

CREATE OR REPLACE FUNCTION ISDATE(v_date IN VARCHAR2) RETURN number IS
    v_date1 DATE;
BEGIN
    select to_date(v_date,'mm/dd/yyyy') into v_date1 from dual;
        RETURN 1;
    Exception WHEN Others THEN
        RETURN 0;
END;

我没有得到这部分。

ISDATE(v_date IN VARCHAR2)返回编号IS     v_date1 DATE

3 个答案:

答案 0 :(得分:2)

CREATE OR REPLACE FUNCTION              -- You are creating or replacing a function in the
                                        -- database
ISDATE                                  -- The name of the function is "ISDATE"
(
  v_date IN VARCHAR2                    -- The function takes one argument called "v_date"
                                        -- which is an IN(put) parameter of the VARCHAR2
                                        -- (string) data type
)
RETURN number                           -- The function returns a number
IS
  v_date1 DATE;                         -- The function has one local variable "v_date1"
                                        -- which is of the DATE data type.
BEGIN                                   -- The start of the main body of the function
  select to_date(v_date,'mm/dd/yyyy')   -- Try to convert the v_date argument to a date
                                        -- using the mm/dd/yyyy format model
  into v_date1                          -- and put the result into the v_date1 variable
  from dual;                            -- Using the DUAL table supplied by Oracle.
  RETURN 1;                             -- If successful then return 1
Exception                               -- If there was an error then...
  WHEN Others THEN                      --   When the error was not matched by another rule
    RETURN 0;                           --     return 0
END;                                    -- End the function.

答案 1 :(得分:1)

它正在检查输入字符串是否可以使用指定格式转换为日期,并分别返回1或否(如果可以或不能)。

答案 2 :(得分:1)

in the documentation所述:

  • ISDATE是函数名称。

  • (v_date IN VARCHAR2)是参数声明;在这种情况下,只有一个输入(IN,表示它在函数中是只读的)参数,它期望一个字符串值;该参数称为v_date,因此您可以使用该名称来引用函数体内的传入值。

  • RETURN number说该函数返回的值是number

  • IS表示您已经完成了参数/返回声明,并转到可选的局部变量声明和函数体。

  • v_date1 DATE声明了date类型的v_date1类型的局部变量。