【发布时间】:2011-07-20 23:50:46
【问题描述】:
CREATE OR REPLACE VIEW POINTS AS
DECLARE
avgDurationOurFault number(5);
avgDurationCustomersFault number(5);
avgDuration number(5);
BEGIN
(select ceil(avg(abs(total_time))) into avgDuration from inquiry);
select ceil(avg(total_duration)) into avgDurationOurFault
from
(
select customer_no, sum(abs(total_time)) total_duration
from inquiry
where cat_id in ('C900', 'C901', 'C902', 'C905', 'C907', 'C908', 'C909')
GROUP BY customer_no);
select ceil(avg(total_duration)) into avgDurationCustomersFault
from
(
select customer_no, sum(abs(total_time)) total_duration
from inquiry
where cat_id in ('C903','C904', 'C906')
group by customer_no);
select t1.customer_no, t1.callPoints, t1.durationPoints, t2.catgPoints,
t1.callPoints+t1.durationPoints+t2.catgPoints as totalPoints
from
(
select customer_no, count(inquiry_id)*avgDuration callPoints , sum(abs(total_time)) durationPoints
from inquiry
group by customer_no
) t1
inner join (
select customer_no, sum(points) catgPoints
from
(
select customer_no,
case
when cat_id in ('C903','C904', 'C906')
then 0
when cat_id in ('C900', 'C901', 'C902', 'C905', 'C907', 'C908', 'C909')
then 2*avgDuration + abs(avgDurationCustomersFault - avgDurationOurFault)
else
0
end as points
from inquiry
)
group by customer_no
) t2
on t1.customer_no = t2.customer_no;
END;
/
--------以下错误------------------------ --------------------------
从命令的第 1 行开始出错:CREATE OR REPLACE VIEW POINTS AS DECLARE avgDurationOurFault number(5) 命令行错误:1 列:32 错误报告:SQL 错误:ORA-00928:缺少 SELECT 关键字 00928. 00000 - “缺少 SELECT 关键字” *原因:
*行动:从命令的第 4 行开始出错: avgDurationCustomersFault number(5) 错误报告:未知命令
从命令第 5 行开始的错误:avgDuration number(5) 错误 报告:未知命令
从命令第 7 行开始的错误:
BEGIN
(select ceil(avg(abs(total_time))) into avgDuration from inquiry);
select ceil(avg(total_duration)) into avgDurationOurFault
from
(
select customer_no, sum(abs(total_time)) total_duration
from inquiry
where cat_id in ('C900', 'C901', 'C902', 'C905', 'C907', 'C908', 'C909')
GROUP BY customer_no);
select ceil(avg(total_duration)) into avgDurationCustomersFault
from
(
select customer_no, sum(abs(total_time)) total_duration
from inquiry
where cat_id in ('C903','C904', 'C906')
group by customer_no);
select t1.customer_no, t1.callPoints, t1.durationPoints, t2.catgPoints,
t1.callPoints+t1.durationPoints+t2.catgPoints as totalPoints
from
(
select customer_no, count(inquiry_id)*avgDuration callPoints , sum(abs(total_time)) durationPoints
from inquiry
group by customer_no
) t1
inner join (
select customer_no, sum(points) catgPoints
from
(
select customer_no,
case
when cat_id in ('C903','C904', 'C906')
then 0
when cat_id in ('C900', 'C901', 'C902', 'C905', 'C907', 'C908', 'C909')
then 2*avgDuration + abs(avgDurationCustomersFault - avgDurationOurFault)
else
0
end as points
from inquiry
)
group by customer_no
) t2
on t1.customer_no = t2.customer_no;
结束;
错误报告:ORA-06550:第 3 行,第 2 列:PLS-00103:遇到 预期以下之一时的符号“(”:
begin case 为 goto 声明退出 if loop mod null pragma raise 在
。 ( , * % & - + / at mod rem as from || 符号"。 在“I ORA-06550:第 3 行,第 67 列:PLS-00103: 遇到符号“;”预期以下情况之一时:
设置 ORA-06550:第 30 行,第 3 列:PLS-00103:遇到符号 “INNER”当预期以下之一时:
, ;对于具有相交减序的组开始联合,其中
连接 06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。 *行动:
【问题讨论】:
-
请发布您遇到的错误。
-
“我遇到了错误。请帮忙!”就像说“我的车坏了。我该如何修理它?”如果您需要帮助,您需要提供更多信息。从特定错误消息开始。