Oracle函数始终返回null

Oracle函数始终返回null,第1张

概述我不能让这个功能按照我的意愿行事.任何人都可以指出为什么它总是返回null而不是CURRENT_TIMESTAMP? CREATE OR REPLACE FUNCTION nowts RETURN TIMESTAMP ISvTimestamp TIMESTAMP;BEGIN SELECT type_date INTO vTimestamp FROM param_table 我不能让这个功能按照我的意愿行事.任何人都可以指出为什么它总是返回null而不是CURRENT_TIMESTAMP?

CREATE OR REPLACE FUNCTION Nowts RETURN TIMESTAMP ISvTimestamp 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 isbegin  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

您可能希望捕获它并返回特定值,或捕获它并引发用户定义的异常(取决于您想要发生的事情).

总结

以上是内存溢出为你收集整理的Oracle函数始终返回null全部内容,希望文章能够帮你解决Oracle函数始终返回null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存