CREATE OR REPLACE FUNCTION SUPPLIER (Tradename IN DRUG.Tradename%TYPE) RETURN VARCHAR2
    IS
        returnString VARCHAR2(32767);
    BEGIN

        returnString := lpad('*',32767,'*');
        SELECT Formula,Pharname INTO returnString FROM DRUG
        WHERE Tradename=Tradename;


        RETURN returnString;

    END;
    /

当我尝试创建此函数时,它说:
Warning : Function created with compilation errors.

当我执行“show err”时,我得到了:
LINE/COL ERROR
-------- -----------------------------------------------------------------
7/2      PL/SQL: SQL Statement ignored
7/44     PL/SQL: ORA-00947: not enough values

很感谢任何形式的帮助!

最佳答案

ORA-00947“值不足”

在第7行上引发:

SELECT Formula,Pharname INTO returnString

您选择了两列,但只提供了一个变量来放入它们。

您可以添加第二个变量,也可以使用某种表达式来连接值,例如:
SELECT Formula,Pharname INTO returnFormula,returnPharname

要么
SELECT Formula || Pharname INTO returnString

关于oracle - 尝试创建PL/SQL函数时出现密码错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26837856/

10-10 18:03