这是存储过程建立,在PL/SQL中测试通过create or replace procedure Create_NormalDate(TableName in out varchar2, FieldName in out varchar2, GroupCount in out integer ,gValue in out Number ) as
GroupPE number;
Total number;
gValues number;
Minvalues Number;begin
execute immediate 'select Min('|| FieldName || ') from '|| TableName into Minvalues;
execute immediate 'select count(*) from '|| TableName into Total;
for i in 0 .. GroupCount - 1 loop
gValues := Minvalues + gValue * i;
execute immediate 'select count(*) from '|| TableName ||' where '|| FieldName||'>='||gValues||' and '|| FieldName||'< '||(gValues+gValue) into GroupPE;
insert into Stat_n (Indexid, Grouplength, Frequence, Frequency) values (i + 1, gValues, GroupPE, round(GroupPE / Total, 4));
end loop;
end Create_NormalDate;这是调用:
begin
-- Call the procedure
create_normaldate('wy_yb',
'zongfy',
'10',
'1000');
end;
提示:
表达式'wy_yb'不能用做赋值目标
表达式'zongfy'不能用做赋值目标
表达式'10'不能用做赋值目标
表达式'1000'不能用做赋值目标
GroupPE number;
Total number;
gValues number;
Minvalues Number;begin
execute immediate 'select Min('|| FieldName || ') from '|| TableName into Minvalues;
execute immediate 'select count(*) from '|| TableName into Total;
for i in 0 .. GroupCount - 1 loop
gValues := Minvalues + gValue * i;
execute immediate 'select count(*) from '|| TableName ||' where '|| FieldName||'>='||gValues||' and '|| FieldName||'< '||(gValues+gValue) into GroupPE;
insert into Stat_n (Indexid, Grouplength, Frequence, Frequency) values (i + 1, gValues, GroupPE, round(GroupPE / Total, 4));
end loop;
end Create_NormalDate;这是调用:
begin
-- Call the procedure
create_normaldate('wy_yb',
'zongfy',
'10',
'1000');
end;
提示:
表达式'wy_yb'不能用做赋值目标
表达式'zongfy'不能用做赋值目标
表达式'10'不能用做赋值目标
表达式'1000'不能用做赋值目标
TableName in varchar2, FieldName in varchar2, GroupCount in integer ,gValue in Number