在过去的2个小时里我一直在搞乱这个问题,似乎找不到任何有用的东西(我已经阅读了一些解决方案,但对我来说他们没有工作)。我有以下create function语句:
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
相当新,所以可能的其他事情都不正确。
答案 0 :(得分: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;