Почему я получаю ошибку длины строки в функции plsql - PullRequest
0 голосов
/ 30 сентября 2018

Я сделал функцию, которая нуждается в дате внутри параметра.Это должно дать возврат varchar2: 'Weekend' или 'Doordeweeks'

SET SERVEROUTPUT ON;
declare
    resultaat varchar2;
    datum date;
    function is_weekend(p_datum in varchar2)
    return varchar2
    is
    begin
        datum := to_date(p_datum, 'dd-mm-yyyy');
        if (to_char(datum, 'd') in ('1', '7')) then
            resultaat := 'Weekend';
            dbms_output.put_line(resultaat);
            return resultaat;
        else
            resultaat := 'Doordeweeks';
            dbms_output.put_line(resultaat);
            return resultaat;

        end if;
    end is_weekend;
    begin
        dbms_output.put_line(is_weekend('30-09-2018'));
    end;

Запуск этого кода вызывает ошибку pl / sql:

Error report - ORA-06550: line 2, column 15: PLS-00215: String length constraints must be in range (1 .. 32767)
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:

Похоже, что-то не таккто-нибудь задумался, что вызвало эту ошибку?

1 Ответ

0 голосов
/ 30 сентября 2018

вам просто нужно установить размер переменной varhcar2, и вам нужно использовать to_date, чтобы присвоить его dateu следующим образом: пример ввода:

SET SERVEROUTPUT ON;
declare       
    resultaat varchar2(20);
    datum date;
    function is_weekend(p_datum in varchar2)
    return varchar2
    is
    begin
        datum := p_datum;
        if (to_char(datum, 'd') in ('1', '7')) then
            resultaat := 'Weekend';
            dbms_output.put_line(resultaat);
            return resultaat;
        else
            resultaat := 'Doordeweeks';
            dbms_output.put_line(resultaat);
            return resultaat;

        end if;
    end is_weekend;
    begin
        dbms_output.put_line(is_weekend('30-09-2018'));
    end;

пример вывода:

Weekend
Weekend

begin
        dbms_output.put_line(is_weekend('30-nov-2018'));
    end;

Doordeweeks
Doordeweeks
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...