Oracle函数始终返回null
发布时间:2021-03-14 20:01:45 所属栏目:站长百科 来源:网络整理
导读:我不能让这个成果凭证我的意愿行事.任何人都可以指出为什么它老是返回null而不是CURRENT_TIMESTAMP? CREATE OR REPLACE FUNCTION nowts RETURN TIMESTAMP ISvTimestamp TIMESTAMP;BEGIN SELECT type_date INTO vTimestamp FROM param_table WHERE param_tab
|
我不能让这个成果凭证我的意愿行事.任何人都可以指出为什么它老是返回null而不是CURRENT_TIMESTAMP? CREATE OR REPLACE FUNCTION nowts RETURN TIMESTAMP IS
vTimestamp TIMESTAMP;
BEGIN
SELECT type_date
INTO vTimestamp
FROM param_table
WHERE param_table = 3
AND exists (
SELECT *
FROM param_table
WHERE param_table = 2
);
IF vTimestamp IS NULL THEN
vTimestamp := CURRENT_TIMESTAMP;
END IF;
return vTimestamp;
END nowts;
此刻,名为param_table的表中没有任何内容. 办理要领假如从SQL挪用函数而且该函数激发NO_DATA_FOUND,则会获得NULL.NO_DATA_FOUND中的SQLCODE为100,而PL / SQL代码为-1403. Ref 正数不是错误,SQL不会将NO_DATA_FOUND的观念视为非常. SQL将其视为“无值”,即null. create or replace function ret_dt return date is
begin
raise no_data_found;
end;
/
Elapsed: 00:00:00.26
> select rownum,ret_dt from user_tables where rownum < 5;
ROWNUM RET_DT
--------------- -----------------
1.00
2.00
3.00
4.00
您也许但愿捕捉它并返回特定值,或捕捉它并激发用户界说的非常(取决于您想要产生的工作). (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

