SQL> CREATE or REPLACE FUNCTION custord (custNo IN number)
2 RETURN NUMBER
3 IS cust_tot NUMBER(11,2);
4 BEGIN
5 SELECT sum(cust_total_field)
6 INTO cust_tot
7 FROM ord
8 WHERE cust_number_field=custNo;
9 RETURN(cust_tot);
10 END;
11 /
Warning: Function created with compilation errors.
SQL> begin
2 dbms_output.put_line('customer 102 total is ' || custord(102));
3 end;
4 /
dbms_output.put_line('customer 102 total is ' || custord(102));
*
ERROR at line 2:
ORA-06550: line 2, column 52:
PLS-00905: object CIS605.CUSTORD is invalid
ORA-06550: line 2, column 3:
PL/SQL: Statement ignored
SQL>
我看到错误,但对象cis605有效。我缺少什么想法?
使用ORD表创建一个名为custord的存储函数,该函数将使用客户ID(CUSTID),该函数将返回指定客户ID TOTAL字段的总和。 存储函数后,运行以下SQL: 开始 dbms_output.put_line('customer 102 total is'|| custord(102)); 端;
您的输出应如下所示: 结果 说明 描述 保存的SQL 历史
客户102总计为27775.5
声明已处理。
答案 0 :(得分:1)
尝试
SHOW ERRORS FUNCTION custord
您的custord
函数是在编译错误的情况下创建的,因此它有问题。这就是您收到object CIS605.CUSTORD is invalid
错误的原因。