我想我几乎得到了但不完全,我正在尝试在我的函数中返回DOPL值,但无法弄清楚问题(提前感谢)。
CREATE OR REPLACE FUNCTION GET_CUST_STRING_FROM_DB (pcustid NUMBER) RETURN
VARCHAR2 AS
vCustname VARCHAR2(100);
vStatus VARCHAR2(7);
vSalesYTD NUMBER;
vStr VARCHAR2(100);
BEGIN
SELECT CUSTNAME, SALES_YTD, STATUS INTO vCustname, vStatus, vSalesYTD FROM
Customer
WHERE pcustid = CUSTID;
vStr := DBMS_OUTPUT.PUT_LINE('Custid: ' || pcustid || ' Name: ' || vCustname
|| ' Status: ' || vStatus || ' SalesYTD: ' || vSalesYTD);
RETURN vStr;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20021, 'Customer ID not found');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20000, SQLERRM);
END;
/
答案 0 :(得分:1)
只需将下面提到的行替换为
vStr := 'Custid: ' || pcustid || ' Name: ' || vCustname
|| ' Status: ' || vStatus || ' SalesYTD: ' || vSalesYTD;