oracle - Oracle 12c:使用用户定义的函数结果和 In 子句
问题描述
我有一个函数(funct_A),它在引号中返回一个varchar Select funct_A from dual return 'A1234';
我想在 IN 子句中使用 funct_A 的结果
这将返回 100 --> select count(E.tickets) from event E where E.ticket_number in ('A1234')。
这将返回 0 --> select count(E.tickets) from event E where E.ticket_number in (funct_A)。
这是如何实现的?
这是如何实现的。
解决方案
你可能不会。如果您的函数始终返回单个值,则只需使用相等条件而不是IN
. 但是,假设您的实际目标是让函数返回多个值,那么您可能需要一个流水线表函数
create or replace type ticket_tbl is table of varchar2(10);
create or replace function funcA
return ticket_tbl
pipelined
is
begin
pipe row ('A1234');
pipe row ('B5678' );
end;
/
select *
from event e
where e.ticket_number in (select column_value
from table( funcA ) );
推荐阅读
- curl - 使用 ExecuteProcess 和 --data-binary 标记的 Curl 函数在 Apache Nifi 中不起作用
- asp.net-core - 负载平衡 IdentityServer4 时未找到端点条目
- powershell - Powershell 脚本被调用两次
- java - 什么时候应该关闭 GRPC 上的通道?
- ios - Xamarin.iOS 应用在 iOS 14.0 中询问本地网络权限
- r - 使用 bnstruct 计算动态贝叶斯网络
- html - bootstrap 4 carousel 的控件不起作用
- html - 上传文件时如何检查 adoc 文件类型
- qt5 - Qt5:从按钮到顶部动态添加QLabel
- scala - 将递归 sql 转换转换为 spark