Oracle 上下文变量中的变量
我有一个表,我想使用上下文变量从该表中进行选择 桌子 键、数据 “XX”,“布拉布拉” “yy”,“布拉布拉” “zz”,“布拉布拉” ‘aa’、‘lkdjfa’ ..... .... 我的选择是: 从键不在('XX','zz')的表中选择* 我对上下文变量的定义如下 变量:='('| |''xx''| |','| |''yy') DBMS_uuusession.SET_CONTEXT('key_CONTEXT','KeyValues',Variable) 从dual中选择系统上下文(“键上下文”、“键值”)结果 结果 ('XX','zz') 所以我认为这是可行的: 从键不在系统上下文中的表中选择*(“键上下文”,“键值”)Oracle 上下文变量中的变量,oracle,Oracle,我有一个表,我想使用上下文变量从该表中进行选择 桌子 键、数据 “XX”,“布拉布拉” “yy”,“布拉布拉” “zz”,“布拉布拉” ‘aa’、‘lkdjfa’ ..... .... 我的选择是: 从键不在('XX','zz')的表中选择* 我对上下文变量的定义如下 变量:='('| |''xx''| |','| |''yy') DBMS_uuusession.SET_CONTEXT('key_CONTEXT','KeyValues',Variable) 从dual中选择系统上下文(“键上下
有什么建议吗?有关类似的问题和几种解决方案,请参见此内容:
create or replace type myTableType as table of varchar2(100);
/
create or replace function in_list( p_string in varchar2 )
return myTableType
as
l_data myTableType := myTableType();
l_string long default p_string || ',';
l_n number;
begin
loop
exit when l_string is null;
l_data.extend;
l_n := instr( l_string, ',' );
l_data( l_data.count ) := substr( l_string, 1, l_n-1 );
l_string := substr( l_string, l_n+1 );
end loop;
return l_data;
end;
/
select *
from Table
where key is not in (
select * from THE (
select cast(in_list(sys_context('key_context','KeyValues')) as mytableType)
from dual
)
);