| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> PL/SQL strange error :((
For two days now, I don't understand why when I try this little piece of
code, I get a error.
I checked memory space and syntax, looked in each part of thePL/SQL User's
guide and reference.
This code is for a Oracle Server 8.0.5.
create or replace package tpccrand is
--
type Tperm is varray (3000) of integer;
randperm3000 Tperm;
type Tlastname is varying array (10) of varchar2(10);
lastname Tlastname :=
T_lastname( 'BAR', 'OUGHT', 'ABLE', 'PRI',
'PRES', 'ESE', 'ANTI', 'CALLY',
'ATION', 'EING'
);
--
procedure initperm;
procedure randstr (str out varchar2, x in integer, y in integer);
procedure randdatastr (str out varchar2, x in integer, y in
integer);
procedure randnum (str out varchar2, len in integer);
procedure randlastname (str out varchar2, id in integer);
function NURand (A in integer, x in integer, y in integer,
cnum in integer) return integer;
end tpccrand;
create or replace package body tpccrand is
procedure initperm is
pos binary_integer;
temp integer;
i binary_integer;
begin
for i in 0..2999 loop
randperm3000(i) := i+1;
end loop;
for i in reverse 3000..1 loop
pos := mod(random.val(0,3000),i);
temp := randperm3000(i-1);
randperm3000(i-1) := randperm3000(pos);
randperm3000(pos) := temp;
end loop;
end initperm;
procedure randstr (str out varchar2, x in integer, y in integer) is
i binary_integer;
j binary_integer;
len binary_integer;
begin
len := random.val(x,y+1);
str := '';
for i in 0..len-1 loop
j := random.val(0,62);
if j < 26 then
str := str || chr(j + 97);
elsif j < 52 then
str := str || chr(j + 65 - 26);
else
str := str || chr(j + 48 - 52);
end if;
end loop;
end randstr;
procedure randdatastr (str out varchar2, x in integer, y in integer)
is
i binary_integer;
j binary_integer;
len binary_integer;
pos binary_integer;
begin
len := random.val(x,y+1);
str := '';
for i in 0..len-1 loop
j := random.val(0,62);
if j < 26 then
str := str || chr(j + 97);
elsif j < 52 then
str := str || chr(j + 65 - 26);
else
str := str || chr(j + 48 - 52);
end if;
end loop;
if ( random.val(0,10) = 0 ) then
pos := random.val(1,len-8);
str := substr(str,1,pos-1) || 'ORIGINAL' ||
substr(str,p
end if;
end randdatastr;
procedure randnum(str out varchar2,len in integer) is
i binary_integer;
begin
str := '';
for i in 1..len loop
str := str || chr(48 + random.val(0,10));
end loop;
end randnum;
procedure randlastname (str out varchar2,id in integer) is
begin
id := mod(id,1000);
str := lastname(id/10);
str := str || lastname( mod(id/10,10) );
str := str || lastname( mod(id,10) );
end randlastname;
function NURand (A in integer, x in integer, y in integer,
cnum in integer) return integer is
ta binary_integer;
tb binary_integer;
begin
ta := random.val(0,A+1);
tb := random.val(x,y+1);
end randnum;
procedure randlastname (str out varchar2,id in integer) is
begin
id := mod(id,1000);
str := lastname(id/10);
str := str || lastname( mod(id/10,10) );
str := str || lastname( mod(id,10) );
end randlastname;
function NURand (A in integer, x in integer, y in integer,
cnum in integer) return integer is
ta binary_integer;
tb binary_integer;
begin
ta := random.val(0,A+1);
tb := random.val(x,y+1);
return mod( (ta OR tb) + cnum, y - x + 1) + x;
end NURand;
end tpccrand;
/
show errors;
------------ cut here -------------------------------
And the errors are : (sqlplus SYS/password)
Warning: Package created with compilation errors.
type Tperm is varray (3000) of integer;
*
ERROR at line 3:
No errors.
Warning: Package Body created with compilation errors.
pos binary_integer;
*
No errors.
Thanks a lot to people will be able to help me ! Received on Thu May 27 1999 - 09:40:39 CDT
![]() |
![]() |