Plsql 创建PL SQL函数时出错
问题是: 创建一个名为“credit_limit”的函数,该函数将装运实体id(即实体id)作为输入,并返回varchar类型的limit_状态。 功能名称:信用额度 输入参数:int中的实体_id 输出变量:varchar类型的limit_状态变量 设计规则: 1.如果给定实体id的信用限额大于50000,则将限额状态显示为“信用限额大于50000” 2.如果给定实体id的信用限额小于50000,则将限额状态显示为“信用限额小于50000” 注意:不要更改解决方案中的给定状态消息Plsql 创建PL SQL函数时出错,plsql,Plsql,问题是: 创建一个名为“credit_limit”的函数,该函数将装运实体id(即实体id)作为输入,并返回varchar类型的limit_状态。 功能名称:信用额度 输入参数:int中的实体_id 输出变量:varchar类型的limit_状态变量 设计规则: 1.如果给定实体id的信用限额大于50000,则将限额状态显示为“信用限额大于50000” 2.如果给定实体id的信用限额小于50000,则将限额状态显示为“信用限额小于50000” 注意:不要更改解决方案中的给定状态消息 create
create or replace function credit_limit (entity_id in integer)
return varchar
is
c_credit_limit NUMBER(*,2);
limit_status varchar(255);
begin
select credit_limit into c_credit_limit from shipment_entity
where id = entity_id;
return(c_credit_limit);
if c_credit_limit > 50000 then
limit_status := 'Credit limit is greater than 50000';
else
if c_credit_limit < 50000 then
limit_status := 'Credit limit is less than 50000';
end if;
return (limit_status);
end;
/
创建或替换函数信用额度(实体id为整数)
返回varchar
是
信用额度编号(*,2);
极限状态varchar(255);
开始
从发货实体将信用额度选择到信用额度中
其中id=实体_id;
退货(信用额度);
如果信用额度>50000,则
限额_状态:='信用限额大于50000';
其他的
如果信用额度<50000,则
限额_状态:='信用限额小于50000';
如果结束;
返回(限制状态);
结束;
/
我输入了收到错误的代码
警告:函数创建时出现编译错误
请帮帮我。您遇到问题的原因有两个: 1) 从
函数
只能返回一次。您多次使用它
2) IF-ENDIF
块之一中缺少END IF
修改代码为:
CREATE OR REPLACE FUNCTION credit_limit (entity_id IN INTEGER)
RETURN VARCHAR2
IS
c_credit_limit NUMBER (5, 2);
limit_status VARCHAR (255);
BEGIN
SELECT credit_limit
INTO c_credit_limit
FROM shipment_entity
WHERE id = entity_id;
IF c_credit_limit > 50000
THEN
limit_status := 'Credit limit is greater than 50000';
ELSE
IF c_credit_limit < 50000
THEN
limit_status := 'Credit limit is less than 50000';
END IF;
END IF;
RETURN (c_credit_limit);
END;
/
创建或替换函数信用额度(实体id为整数)
返回VARCHAR2
是
信用证限额编号(5,2);
极限状态VARCHAR(255);
开始
选择信用额度
进入信用额度
来自装运实体
其中id=实体_id;
如果信用额度>50000
然后
限额_状态:='信用限额大于50000';
其他的
如果信用额度<50000
然后
限额_状态:='信用限额小于50000';
如果结束;
如果结束;
退货(信用额度);
结束;
/
显示错误时会给您带来什么?