标签: pls-00201

Oracle nvl2 在存储过程 PLS-00201 中不起作用:必须声明标识符“NVL2”

作为标题,我正在写一些关于 Oracle 的存储过程,首先我检查了版本

SELECT * FROM v$version;
Run Code Online (Sandbox Code Playgroud)

结果

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0  Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
Run Code Online (Sandbox Code Playgroud)

...

并且,使用常规 SQL 查询尝试了 NVL2

select 'Test: ' || nvl2('...', 'things', 'nothing') from dual;
select 'Test: ' || nvl2('', 'things', 'nothing') from dual;
Run Code Online (Sandbox Code Playgroud)

结果似乎是正确的

Test: things
Test: nothing
Run Code Online (Sandbox Code Playgroud)

...

所以我确认 11g 确实支持 NLV2 功能,我现在可以开始编写我的存储过程,如下所示:

create or replace procedure my_schema.SP_READ_MEMBER(noP in varchar2, nameP …
Run Code Online (Sandbox Code Playgroud)

oracle stored-procedures nvl pls-00201

5
推荐指数
1
解决办法
2934
查看次数

标签 统计

nvl ×1

oracle ×1

pls-00201 ×1

stored-procedures ×1