如何在函数内返回DOPL?

时间:2017-09-08 00:55:27

标签: sql oracle plsql

我想我几乎得到了但不完全,我正在尝试在我的函数中返回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;
 /

1 个答案:

答案 0 :(得分:1)

只需将下面提到的行替换为

vStr := 'Custid: ' || pcustid || ' Name: ' || vCustname 
|| ' Status: ' || vStatus || ' SalesYTD: ' || vSalesYTD;