以下是我简化了的一个SQL Server的过程,我想把以下的过程翻译成ORACLE语句。
可是不知道该如何去实现IF NOT EXISTS语句和返回。请帮帮忙,多谢了!
CREATE PROCEDURE sp_ConvertInv(@FID int, @OutInfo varchar(200))
AS
IF NOT EXISTS(SELECT 1 FROM T_Free WHERE FID = @FID)
BEGIN
  SET @OutInfo = 'Not Found'
  RETURN
ENDSET @OutInfo = ''GO

解决方案 »

  1.   


    create or replace procedure sp_ConvertInv(
    p_FID int, 
    p_OutInfo out varchar2)
    is
    rc int := 0;
    begin
    select count(1) into rc FROM T_Free WHERE FID = p_FID;
    if rc<>0 then
    p_OutInfo := 'Not Found';
    else
    p_OutInfo := '';
    end if;
    exception
    when others then
    dbms_output.put_line('errors');
    end;
    /
      

  2.   


    --寫反了,改一點
    create or replace procedure sp_ConvertInv(
    p_FID int, 
    p_OutInfo out varchar2)
    is
    rc int := 0;
    begin
    select count(1) into rc FROM T_Free WHERE FID = p_FID;
    if rc=0 then--應是=0是沒找到
    p_OutInfo := 'Not Found';
    else
    p_OutInfo := ' ';
    end if;
    dbms_output.put_line(p_OutInfo);
    exception
    when others then
    dbms_output.put_line('errors');
    end;
    /
    --測試declare 
    p_FID int;
    p_OutInfo varchar2(100);
    begin
    p_FID := 1;
    sp_ConvertInv(p_FID,p_OutInfo);
    end;
    /