利用对象类型通过字符串分析出数据函数:
create or replace type mytabletype as table of number;
/create or replace function strtab(p_str in varchar2)
return mytabletype
as
lstr varchar2(1000) default p_str||',';
ln number;
ldata mytabletype:=mytabletype();
begin
loop
ln:=instr(lstr,',');
exit when (nvl(ln,0)=0);
ldata.extend;
ldata(ldata.count):=ltrim(rtrim(substr(lstr,1,ln-1)));
lstr:=substr(lstr,ln+1);
end loop;
return ldata;
end;
/测试:
SQL> select * from table(cast(strtab('11,12,13') as mytabletype));COLUMN_VALUE
------------
11
12
13
create or replace type mytabletype as table of number;
/create or replace function strtab(p_str in varchar2)
return mytabletype
as
lstr varchar2(1000) default p_str||',';
ln number;
ldata mytabletype:=mytabletype();
begin
loop
ln:=instr(lstr,',');
exit when (nvl(ln,0)=0);
ldata.extend;
ldata(ldata.count):=ltrim(rtrim(substr(lstr,1,ln-1)));
lstr:=substr(lstr,ln+1);
end loop;
return ldata;
end;
/测试:
SQL> select * from table(cast(strtab('11,12,13') as mytabletype));COLUMN_VALUE
------------
11
12
13
解决方案 »
- 存储过程运行记录怎么写
- 请教取得数据库系统时间的问题
- 下面二个过程占用锁资源多,还是 基本上没有区别
- java.lang.IllegalStateException: Blobs may not be accessed after serialization
- ORACLE 9I 卸载后重新安装问题
- 求一份关于数据库开发规范文档
- 如何在存储过程里利用 in 子句
- 如果编写执行ORACLE 9I的SQL执行脚本(bat文件)
- OracleConnection 连接ORACLE数据库的字符串如何写??
- 关于类型转换问题to_number和to_char
- 因函数中的死循环,我该如何解锁呢?
- 求助:如何判断一条SQL语句执行了没有?
-- ----------
11 张三
12 李四
13 王五
i pls_integer;
j pls_integer;
str varchar2(100);
type tarr is varray(100) of number;
arr tarr:=tarr();
rec emp%rowtype;
begin
i:=0;
str:=content;
loop
j:=instr(str,',');
arr.extend;
i:=i+1;
if j<=0 then
arr(i):=str;
else
arr(i):=substr(str,1,j-1);
str:=substr(str,j+1);
end if; exit when j<=0;
end loop;
for i in arr.first..arr.last loop
select * into rec from emp where employee_id=arr(i);
dbms_output.put_line(rec.employee_id||' '||rec.first_name);
end loop;
end;