我看到错误,但帐户有效

时间:2011-09-24 15:16:35

标签: sql oracle sqlplus

 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

声明已处理。

1 个答案:

答案 0 :(得分:1)

尝试

SHOW ERRORS FUNCTION custord

您的custord函数是在编译错误的情况下创建的,因此它有问题。这就是您收到object CIS605.CUSTORD is invalid错误的原因。