oracle - 编译函数时出现“PLS-00049:绑定变量错误”
问题描述
编译此函数时出现错误:
PLS-00049:错误的绑定变量“RETURN_VALUE”
我需要这方面的帮助。
FUNCTION GECM_ROUND_FNC
(P_FIELD_VALUE IN NUMBER,
P_ORG_ID IN NUMBER)
RETURN VARCHAR2
IS
v_ret_val NUMBER := P_FIELD_VALUE;
V_OU_NAME hr_operating_units.name%type;
v_round_dec NUMBER;
BEGIN
BEGIN
SELECT NAME INTO V_OU_NAME
FROM HR_ALL_ORGANIZATION_UNITS
WHERE ORGANIZATION_ID = P_ORG_ID;
EXCEPTION WHEN OTHERS THEN
V_OU_NAME := '';
END;
--
IF V_OU_NAME IS NOT NULL AND NVL(GECM_ICP_PKG.gecm_get_process_value_fnc('GECM_ERP_VALIDATIONS',V_OU_NAME,'','',''),'N')='Y' THEN
BEGIN
IF NVL(GECM_ICP_PKG.GECM_GET_PARAMETER_VALUE_FNC('GECM_ERP_VALIDATIONS','DECIMAL_ROUNDING_INTERFACES',V_OU_NAME,'',''),0) = 'Y' THEN
BEGIN
SELECT NVL(GECM_ICP_PKG.GECM_GET_PARAMETER_VALUE_FNC('GECM_ERP_VALIDATIONS','DECIMAL_PLACE_LIMIT',V_OU_NAME,'',''),0)
INTO v_round_dec from dual;
EXCEPTION
WHEN OTHERS THEN
v_round_dec := 0;
END;
IF v_round_dec <> 0 THEN
v_ret_val:= TO_CHAR(ROUND(v_ret_val,v_round_dec));
ELSE
v_ret_val:=v_ret_val;
END IF;
END IF;
END;
END IF;
SELECT to_char(decode(sign(v_ret_val-1),-1,decode('0'||to_number(v_ret_val),'00','0','0'||to_number(v_ret_val)),v_ret_val)) INTO v_ret_val FROM DUAL;
:return_value := v_ret_val;
END;
解决方案
代替
:return_value := v_ret_val;
利用
return v_ret_val;
推荐阅读
- flutter - Flutter 两个插件定义了相同的类名
- r - 如何在闪亮的应用程序中使用响应式设计?
- perl - 在 Solaris 11 上通过 CPAN 提示安装 DBI Perl 模块时出现问题
- c - CC430 UART 读取问题 - 接收中断标志始终为“0”
- asp.net - ASP.NET 5:创建后如何在单例上运行函数?
- discord.js - 向每个对 discord.js 中的消息做出反应的用户发送 dm
- javascript - 不能在 Node js 的函数之外看到变量吗?
- javascript - ReferenceError: Socket is not defined .....使用 Socket.io 创建节点服务器时
- c# - WPF DataGrid - 使用 DataTable 作为 ItemsSource 的自定义排序
- java - 无法传输状态码为 409 maven 的文件