create or replace function get_value(mid number) return number as
t number;
type w_type is table of number(4,2) index by binary_integer;
w_array w_type;
p1_array w_type;
p2_array w_type;
p3_array w_type;
p4_array w_type;
t_array w_type;
i binary_integer :=0;
j binary_integer :=0; begin
for r in (select f_weight from factor where f_pre=10100)
loop
i:=i+1;
w_array(i):=r.f_weight;
end loop;
for p in (select * from table(select f_saf from ppjz where m_id=mid))
loop
j:=j+1;
p1_array(j):=p.p1;
p2_array(j):=p.p2;
p3_array(j):=p.p3;
p4_array(j):=p.p4;
end loop;
for k in 1..4
loop
t_array(1):=w_array(k)*p1_array(k);
t_array(2):=w_array(k)*p2_array(k);
t_array(3):=w_array(k)*p3_array(k);
t_array(4):=w_array(k)*p4_array(k);
end loop;
t:=t_array(1)*1.0+t_array(2)*0.8+t_array(3)*0.6+t_array(4)*0.5;
return t;
end get_value;
t number;
type w_type is table of number(4,2) index by binary_integer;
w_array w_type;
p1_array w_type;
p2_array w_type;
p3_array w_type;
p4_array w_type;
t_array w_type;
i binary_integer :=0;
j binary_integer :=0; begin
for r in (select f_weight from factor where f_pre=10100)
loop
i:=i+1;
w_array(i):=r.f_weight;
end loop;
for p in (select * from table(select f_saf from ppjz where m_id=mid))
loop
j:=j+1;
p1_array(j):=p.p1;
p2_array(j):=p.p2;
p3_array(j):=p.p3;
p4_array(j):=p.p4;
end loop;
for k in 1..4
loop
t_array(1):=w_array(k)*p1_array(k);
t_array(2):=w_array(k)*p2_array(k);
t_array(3):=w_array(k)*p3_array(k);
t_array(4):=w_array(k)*p4_array(k);
end loop;
t:=t_array(1)*1.0+t_array(2)*0.8+t_array(3)*0.6+t_array(4)*0.5;
return t;
end get_value;
解决方案 »
- Oracle ORA-00972:Identification too long
- 求以sql
- to_date函数输出格式为什么不是预期的结果......
- 100分菜鸟问题,在线求助:oracle连接字符串的问题
- 为什么监听器老是启动不了?
- RECOVERY LAB - 3 (LOSS DATAFILE WITHOUT BACKUP USING OLD CONTROL FILE)
- 一个很简单的问题,/opt/oracle/oradata/oradb 中的数据文件中的内容如何查看,不胜感激
- 初学Oracle,请问Oracle9i for windows的版本哪里有下载啊?谢谢
- 又一个sql语句的奇怪现象
- 在线等待---服务器端与client端可以装在同一台机器上吗?
- 上海一氏软件科技有限公司,急切诚聘网络游戏服务器段设计程序员
- 一个select语句的写法请问
t number;
type w_type is table of number(4,2) index by binary_integer;
w_array w_type;
p1_array w_type;
p2_array w_type;
p3_array w_type;
p4_array w_type;
t_array w_type;
i binary_integer :=0;
j binary_integer :=0; begin for r in (select f_weight from factor where f_pre=10100)
loop
i:=i+1;
w_array(i):=r.f_weight;
end loop; for p in (select * from table(select f_saf from ppjz where m_id=mid))
loop
j:=j+1;
p1_array(j):=p.p1;
p2_array(j):=p.p2;
p3_array(j):=p.p3;
p4_array(j):=p.p4;
end loop; for k in 1..4
loop
t_array(1):=w_array(k)*p1_array(k);
t_array(2):=w_array(k)*p2_array(k);
t_array(3):=w_array(k)*p3_array(k);
t_array(4):=w_array(k)*p4_array(k);
end loop; t:=t_array(1)*1.0+t_array(2)*0.8+t_array(3)*0.6+t_array(4)*0.5; return t;
end;
end;