oracle - 从oracle sql中的函数中的游标返回值?
问题描述
我编写了一个包含返回 True / False 值的游标的函数。下面的代码是否正确?在这种情况下,输出会显示为“真”吗?我没有使用任何循环/结束循环。
FUNCTION get_fruit_value(pn_code in NUMBER)
RETURN VARCHAR2;
AS
nvalue varchar2;
vfru_name varchar2(100);
CURSOR C1
IS
SELECT fruit_name from grocery where grocery_code = pn_code;
-- here output has 4 values : **fruit_name = Apple, Orange, Banana, Kivi**
BEGIN
OPEN C1;
FETCH C1 into vfru_name;
if vfru_name = 'Apple' then
nvalue ='True';
else
nvalue ='False';
end if;
CLOSE C1;
RETURN nvalue;
END get_fruit_value;
或者有没有其他方法可以做到这一点?
解决方案
我推荐使用 FOR LOOP 语句(更多信息:https ://www.oracletutorial.com/plsql-tutorial/plsql-cursor-for-loop/ )
用你的例子:
FUNCTION get_fruit_value(pn_code in NUMBER)
RETURN VARCHAR2;
AS
nvalue varchar2;
vfru_name varchar2(100);
CURSOR C1
IS
SELECT fruit_name from grocery where grocery_code = pn_code;
-- here output has 4 values : **fruit_name = Apple, Orange, Banana, Kivi**
BEGIN
FOR record IN C1
LOOP
if record.fruit_name = 'Apple' then
nvalue ='True';
else
nvalue ='False';
end if;
END LOOP;
RETURN nvalue;
END get_fruit_value;
我希望能有所帮助。
推荐阅读
- nativescript - NativeScript 如何设置全局色调?
- javascript - 如何使用资产管道将 Bootstrap Landkit 添加到 rails 应用程序?(我的 javascript 似乎没有正确链接)
- java - 当我在另一台计算机上执行应用程序时出现 BigDecimal NumberFormatException
- html - Safari 选项值是空白的,但不是 chrome
- python-3.x - Python 3:如何重新排序嵌套列表的子列表?
- php - 503 服务不可用(长时间运行的 MySQL 查询)
- twig - 使用 craftcms 的 Twig 表问题
- javascript - 使用 Cypress 登录 WordPress,无需使用 UI
- python - 如何将函数 scipy.sparse.linalg.eigs 集成到张量流图中?
- javascript - 在 discord.js 中,我如何创建一个命令来显示已标记用户的头像,或者如果未标记 - 我的头像?