Объявите локальную переменную: как преобразовать этот скрипт mssql в oracle? - PullRequest
0 голосов
/ 08 февраля 2012
declare @amount float
declare @result char (20)

select @amount = cost from PurchaseDoc where id = 1

if @amount > 0 set @result = 'ok'
else set @result = 'empty'

print @result

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Вот одно представление вашего скрипта, которое может быть выполнено для базы данных Oracle:

DECLARE
    amount    NUMBER;
    result    varchar2(20);
BEGIN
    SELECT SUM(cost) INTO amount
      from PurchaseDoc
     WHERE id = 1;

    if (amount > 0) 
    then
        result := 'ok';
    else 
        result := 'empty';      
    end if;

    dbms_output.put_line(result);    
END;
/

См. ссылку для получения некоторой полезной информации о dbms_output.
Я рекомендую взглянуть на некоторые учебные пособия по PL / SQL, например, расположенные по адресу www.plsql-tutorial.com .

EDIT Обновлен оператор выбора, основанный на предложении Cade Roux

0 голосов
/ 08 февраля 2012

Здесь действительно нет необходимости в PL / SQL, нормальный оператор выбора с функцией 'decode' может помочь.

SELECT DECODE(SUM(COST),0,'empty','ok') FROM PurchaseDoc where id = 1;
...