2016-03-01 30 views
1

我在我的形式使用下面的查询,但它抛出这个错误:的Oracle Forms - 错误103,出现符号“ORDER”

Oracle Forms - Error 103, Encountered the symbol “END”.

相同的查询其工作蟾蜍,没有任何问题。

在窗体或子查询或选择表中使用ORDER是否有任何限制?

形式6I 的Oracle 10g

SELECT apr_rate 
INTO lv_apr_rate  
FROM 
(SELECT apr_rate                         
    FROM cm_contract_extension 
    WHERE country_code = '044' 
     AND company_code = '0441' 
     AND contract_number = '0000002140426510' 
     AND supply_sequence_number = 1 
     ORDER BY version_number DESC) 
     WHERE ROWNUM < 2 ; 

BR, Shadab侯赛因

+0

,有一个块级属性来指定块应该'ORDER BY'而不是指定'哪一列ORDER BY'显式地在SQL中。 – user75ponic

+0

不,我没有在块级使用。 –

回答

0

形式不会让你使用ORDER BY,如果你想,你就需要把它写成一个数据库程序。

0

在Oracle中,你可以使用KEEP这样写:如果您使用在块级

SELECT MAX(apr_rate) KEEP (DENSE_RANK FIRST ORDER BY version_number DESC) as apr_rate                         
FROM cm_contract_extension 
WHERE country_code = '044' AND 
     company_code = '0441' AND 
     contract_number = '0000002140426510' AND 
     supply_sequence_number = 1 ; 
+0

谢谢戈登,这是有道理的,但只有问题将是性能问题,因为我的表是非常巨大的,所以我不能使用DENSE_RANK。 DENSE_RANK中是否有其他方式的开孔? –

+0

'KEEP'在我使用它时有非常好的表现,即使在大桌子上。 –