-2

在过去的 2 个小时里,我一直在搞砸这个问题,似乎找不到任何有用的东西(我已经阅读了一些解决方案,但对我来说它们不起作用)。我有以下创建函数语句:

CREATE FUNCTION GetBatchApprovalEmail(net_id IN NUMBER)
  RETURN VARCHAR2
IS
  email_address VARCHAR2(255);

  CURSOR C1 IS
    SELECT T1.approve_email
      FROM LMS.LMS_STATUS_EMAIL T1
        WHERE T1.NET_ID = net_id
BEGIN

  OPEN C1;
  FETCH C1 into email_address;
  CLOSE C1;

  RETURN email_address;
END;
/

出于某种原因,在执行此语句时,我得到一个

PLS-00215 error (String length constraints must be in range(1 .. 32767)).

我一直在阅读,大多数人都说只为VARCHAR2.

有没有人有任何想法?PS我很新,PL/SQL所以它可能的其他事情是不正确的。

4

1 回答 1

0

您的功能几乎没有错误。检查下面以了解这些。

CREATE FUNCTION GetBatchApprovalEmail(net_id IN NUMBER)
  RETURN VARCHAR2
IS
  email_address VARCHAR2(255);

  CURSOR C1(num number) IS           ---Using passed parameter to the cursor
    SELECT T1.approve_email
      FROM LMS.LMS_STATUS_EMAIL T1
        WHERE T1.NET_ID = num;  
BEGIN

  OPEN C1(net_id);   --- This is the ways to pass parameter to a cursor.

  FETCH C1 into email_address;

  CLOSE C1;

  RETURN email_address;
END;
于 2016-08-16T14:48:00.630 回答