CASE
WHEN A.INAIM = 'O' AND A.SPECIALREASONCODE_T IS NULL THEN
A.BL
WHEN A.INAIM = 'O' AND A.SPECIALREASONCODE_T IS NOT NULL THEN
NVL(GET_EIRBILLNO(A.RECORDID), A.BL)
WHEN A.INAIM = 'I' THEN
GET_EIRBILLNO(A.RECORDID)
WHEN A.INAIM = 'D' THEN
NVL(GET_EIRBILLNO(A.RECORDID), GET_EIRBILLNO_S(A.RECORDID))
ELSE
A.BL
END 如上,我想把上面的语句做成一个函数,怎么改CREATE OR REPLACE FUNCTION get_BOOKING_NBR()
...
WHEN A.INAIM = 'O' AND A.SPECIALREASONCODE_T IS NULL THEN
A.BL
WHEN A.INAIM = 'O' AND A.SPECIALREASONCODE_T IS NOT NULL THEN
NVL(GET_EIRBILLNO(A.RECORDID), A.BL)
WHEN A.INAIM = 'I' THEN
GET_EIRBILLNO(A.RECORDID)
WHEN A.INAIM = 'D' THEN
NVL(GET_EIRBILLNO(A.RECORDID), GET_EIRBILLNO_S(A.RECORDID))
ELSE
A.BL
END 如上,我想把上面的语句做成一个函数,怎么改CREATE OR REPLACE FUNCTION get_BOOKING_NBR()
...
解决方案 »
- Firefox 无法建立到 localhost:8080 服务器的连接。
- 新手问题,关于服务器搬迁
- oracle对一种sql写法的支持很有意思,求解!
- oracle中,用什么数据类型表示货币的数据类型啊?
- 修改程序连接数据库的连接方式
- oracle 10g 的group by是不是和以前的不一样了?
- 一个简单的问题,100高分在线等*********分不够在加!!
- oracle服务器与客户端安装问题
- 关于oracel8i的问题(在线等待)
- 一个SQL语句的写法
- Oracle11g表已经存在数据了,有一个dmp文件想重新覆盖原有的数据,同时添加新的数据,该怎么做
- oracle使用dele删除记录后目录可用空间变为0
SPECIALREASONCODE_T varchar2,
RECORDID varchar2,
BL varchar2)
return varchar2
as
ret varchar2(200);
begin
select CASE
WHEN INAIM = 'O' AND SPECIALREASONCODE_T IS NULL THEN
BL
WHEN INAIM = 'O' AND SPECIALREASONCODE_T IS NOT NULL THEN
NVL(GET_EIRBILLNO(RECORDID), BL)
WHEN INAIM = 'I' THEN
GET_EIRBILLNO(RECORDID)
WHEN INAIM = 'D' THEN
NVL(GET_EIRBILLNO(RECORDID), GET_EIRBILLNO_S(RECORDID))
ELSE
BL
END
into ret
from dual;
return ret;
end;
/
is
变量定义
begin
select 字段 into 变量 from 表
if 判断相关变量 then
return 。。
elsif 判断变量 then
return 。。
………………
end if;
end;