声明局部变量:如何将这个mssql脚本转换为oracle?

时间:2012-02-07 21:08:38

标签: sql-server oracle dbmigrate

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 个答案:

答案 0 :(得分:2)

以下是可以针对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的一些有用信息,请参阅此link 我建议您查看一些PL / SQL教程,例如位于www.plsql-tutorial.com的教程。

修改 根据Cade Roux的建议更新了select语句

答案 1 :(得分:0)

这里真的不需要PL / SQL,带有'decode'功能的普通select语句可以解决问题。

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