就是我要传入一个 数组参数,比如, 有表customer,字段address。我要清楚address里面的不规范信息,比方我传入N个不规范数据{'不规范数据1','不规范数据2','不规范数据2','不规范数据3'.......}。然后砸存储过程里面 loop for 循环用replace(address, '不规范数据1',‘规范数据1’)来处理掉。问下,这样的数据参数如何设定,我在plsql里面用exec proc_clean()的方式,数组参数如何写?请给个实例,谢谢!
解决方案 »
- 如何将从数据库中查询的数据数据保存到内存中
- oracle中用于两个十进制整数逻辑与的运算符是什么?
- 如何更快速的update表,求大神告知
- 虔诚求解:为该监听程序提供的信息正由此计算机上的其他监听程序使用,可以按现状继续配置,但只有在解决冲突之后才能启动该监听程序。
- 在机器没联网的情况下 能否使用ORACLE
- 关于插入数据!
- 请教:这两个SQL语句怎么写?急,马上给分!
- 菜鸟问题:如何将一个date类型的字段UPDATE为特定的日期
- 没有安装Oracle客户端,要运行程序需要那些DLL?
- 怎么样将一个long raw导入到一个文件中,可以用sql语句吗?
- 根据主键判定是insert还是update的问题
- 根据B表的数据过滤A表记录的问题
create or replace procedure test(
lt in tab_str
) is
begin
for v in (select column_value from table(lt)) loop
dbms_output.put_line(v.column_value);
end loop;
end test;SQL> set serverout on
SQL> exec test(tab_str('1','2'))
data in array_str
) is
begin
for v in (select column_value from table(data)) loop
dbms_output.put_line(v.column_value);
end loop;
end demo_array;
--测试
begin
test_array(array_str('不规范数据1','不规范数据2','不规范数据2','不规范数据3)) ;
end;
create or replace type array_str as table of varchar2(1000);create or replace procedure demo_array(
data in array_str
) is
begin
for v in (select column_value from table(data)) loop
dbms_output.put_line(v.column_value);
end loop;
end demo_array;
--测试
begin
test_array(array_str('不规范数据1','不规范数据2','不规范数据2','不规范数据3')) ;
end;如果用pl/sql developer工具测试的话,可以在output看到输出结果。
如果我想往array_str里面添加一个数据,就想java数组的形式,a1[a1.length]='1';怎么操作呢?
array_str(array_str.count):='1';
试试这个
create or replace procedure test
is
v number;
vt tab_str:=tab_str('0');
begin
vt.extend;
vt(vt.count):='1';
vt.extend;
vt(vt.count):='2';
select count(1)
into v
from table(vt);
dbms_output.put_line(v);
end test;