创建自定义类型:
create or replace type fnType is varray(9) of number;
创建函数:
create or replace function test
(dt out dt1)
return dt1
is
result dt1;
temp varchar2(4);
begin
for i in 1..dt.count
loop
for j in 1..i
loop
if(dt(i)<dt(j)) then
begin
temp:=dt(i);
dt(i):=dt(j);
dt(j):=temp;
end;
end if;
end loop;
end loop; for i in 1..dt.count
loop
result(i):=dt(i);
end loop;
return(Result);
end test;
我在调用函数是应该如何传递一个数组参数,能给个例子最好。
create or replace type fnType is varray(9) of number;
创建函数:
create or replace function test
(dt out dt1)
return dt1
is
result dt1;
temp varchar2(4);
begin
for i in 1..dt.count
loop
for j in 1..i
loop
if(dt(i)<dt(j)) then
begin
temp:=dt(i);
dt(i):=dt(j);
dt(j):=temp;
end;
end if;
end loop;
end loop; for i in 1..dt.count
loop
result(i):=dt(i);
end loop;
return(Result);
end test;
我在调用函数是应该如何传递一个数组参数,能给个例子最好。
解决方案 »
- ORA-01031 权限不足
- 求这个sql语句怎么写!
- hibernate中执行sql语句操作oracle数据库如何不加用户名
- 各位高手呀!快来看看 oracle 行列转换 只差一步
- sqlldr 可以用来给db link的table 装载数据吗?
- 存储过程里输出输入参数是number 的不能指定小数点位数吗,varchar的也不能指定长度吗?
- 写在过程中的执行动态语句的select查询为什么没有数据显示???
- Query
- 请教大家,怎么能用导出的sql文件在access中导入数据呢
- 在Linux中连接远程oracle数据库?Sqoop2用法?
- 随机合计组合
- 字符串中取数字,所取值分别update
SQL> create or replace type fnType is varray(3) of number;
2 /
Type created
SQL>
SQL> create or replace function test
2 (dt in out fnType)
3 return fnType
4 is
5 result fnType :=fnType(null,null,null);
6 temp varchar2(4);
7 begin
8 for i in 1..dt.count
9 loop
10 for j in 1..i
11 loop
12 if(dt(i)<dt(j)) then
13 begin
14 temp:=dt(i);
15 dt(i):=dt(j);
16 dt(j):=temp;
17 end;
18 end if;
19 end loop;
20 end loop;
21
22 for i in 1..dt.count
23 loop
24 result(i):=dt(i);
25 end loop;
26 return(Result);
27 end test;
28 /
Function created
SQL>
SQL> declare
2 a fnType :=fnType(5,9,4);
3 begin
4 a :=test(a);
5 for i in 1..a.count loop
6 dbms_output.put_line(a(i));
7 end loop;
8 end;
9 /
4
5
9
PL/SQL procedure successfully completed