2011-09-24 49 views
0
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 TOTAL字段的总和的客户ID(CUSTID)。 当你的函数被存储时,运行以下SQL: begin dbms_output.put_line('customer 102 total is'|| custord(102)); 结束;

你的输出应该是这样的: 结果 解释 描述 保存SQL 历史

客户共102件为27775.5

语句处理。

+0

你对表ORD有特权吗? – Ollie

回答

1

尝试

SHOW ERRORS FUNCTION custord 

custord功能与编译错误产生,所以有什么不妥的地方。这就是你得到object CIS605.CUSTORD is invalid错误的原因。

相关问题