处理sql语句中的恶劣环境

2024-09-30 14:38:30 发布

您现在位置:Python中文网/ 问答频道 /正文

为了将列表作为“in”类sql语句中的参数处理,Oracle的Tom设计了一个解决方案

ops$tkyte@8i> create or replace type myTableType as table of number;
2 /
Type created.

ops$tkyte@8i> create or replace function str2tbl( p_str in varchar2 ) return myTableType
2 as
3 l_str long default p_str || ',';
4 l_n number;
5 l_data myTableType := myTabletype();
6 begin
7 loop
8 l_n := instr( l_str, ',' );
9 exit when (nvl(l_n,0) = 0);
10 l_data.extend;
11 l_data( l_data.count ) := ltrim(rtrim(substr(l_str,1,l_n-1)));
12 l_str := substr( l_str, l_n+1 );
13 end loop;
14 return l_data;
15 end;
16 /

是否可以在sql语句中执行此操作,即不使用Pl/sql

[完整链接:https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:110612348061]

而且,我只能做Select语句


Tags: orinloopnumbersqldatareturnas