курсор в формах 6i - PullRequest
       30

курсор в формах 6i

0 голосов
/ 09 сентября 2010

Я работаю над формами 6i.Я хочу использовать выражение case в курсоре.Но код не компилируется.

Разве Forms 6i не поддерживает выражение регистра в курсоре?Есть ли какой-либо другой способ записать выражение в форму?

Ответы [ 2 ]

3 голосов
/ 09 сентября 2010

Почти во всех случаях, которые я могу себе представить, вы можете использовать вложенные decode s вместо case.

Вместо

 select case when a=1 then 'foo'
             when b>2 then 'bar'
             else 'foobar' end
   from xyz;

Вы можете написать

 select decode(a,1,        'foo',
        decode(sign(b-2),1,'bar',
                           'foobar')) from xyz;

Другая, возможно, более элегантная возможность - создать представление базы данных и использовать его в формах, поэтому формы 6i никогда не увидят case.

2 голосов
/ 09 сентября 2010

Это потому, что движок pl / sql, используемый в Forms 6i, "старый" и не знал о выражениях CASE, когда он разрабатывался.(Насколько я помню, на стороне сервера pl / sql были введены только операторы CASE в Oracle 9i)

У меня нет копии построителя форм 9i, поэтому я не могу комментировать эту версию, но операторы CASEдоступны в формах 10g и выше.

...