Hallo,
Ik heb hier een pl/sql code. Deze code geeft een fout op de regel waar ik de tweede select statement gebruik. Dus na "execute immdiate str;".
De foutmelding die hij geeft zegt dat hij de view niet kan vinden.
Dit klopt omdat hij deze niet heeft aangemaakt.
Als ik alles weg gooi vanaf de "execute immdiate str;". Maakt hij wel de view aan.
Hij werkt dus alleen als ik geen code erachter schrijf.
Hoe kan ik dit oplossen. Hier is mijn code :
[/quote]
declare
str varchar2(200);
str2 varchar2(200);
imagewaarde varchar2(200);
waarde1 number(5,2);
waarde2 number(5,2);
waarde3 number(5,2);
waarde4 number(5,2);
waarde5 number(5,2);
waarde6 number(5,2);
waarde7 number(5,2);
waarde8 number(5,2);
waarde9 number(5,2);
waarde10 number(5,2);
waarde11 number(5,2);
waarde12 number(5,2);
waarde13 number(5,2);
waarde14 number(5,2);
l_int integer default 1;
begin
select image into imagewaarde from oracleragijog_2 where map_id = l_int;
str := 'create or replace view ordinates as ';
str := str||'select rownum rnum,t.* from the ';
str := str||'(select o.geom.sdo_ordinates from oracleragijog_2 o ';
str := str||'where o.map_id = '||l_int||') t';
execute immediate str;
select column_value into waarde1 from ordinates where rnum = 1;
select column_value into waarde2 from ordinates where rnum = 2;
select column_value into waarde3 from ordinates where rnum = 3;
select column_value into waarde4 from ordinates where rnum = 4;
select column_value into waarde5 from ordinates where rnum = 5;
select column_value into waarde6 from ordinates where rnum = 6;
select column_value into waarde7 from ordinates where rnum = 7;
select column_value into waarde8 from ordinates where rnum = 8;
select column_value into waarde9 from ordinates where rnum = 9;
select column_value into waarde10 from ordinates where rnum = 10;
select column_value into waarde11 from ordinates where rnum = 11;
select column_value into waarde12 from ordinates where rnum = 12;
select column_value into waarde13 from ordinates where rnum = 13;
select column_value into waarde14 from ordinates where rnum = 14;
str2 := 'create table temp_xy(image varchar2(50 byte),xwaarde float(126),';
str2 := str2||'ywaarde float(126)';
execute immediate str2;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde1, ywaarde = waarde2;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde3, ywaarde = waarde4;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde5, ywaarde = waarde6;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde7, ywaarde = waarde8;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde8, ywaarde = warde10;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde11, ywaarde = waarde12;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde13, ywaarde = waarde14;
end;
[quote]
Ik heb hier een pl/sql code. Deze code geeft een fout op de regel waar ik de tweede select statement gebruik. Dus na "execute immdiate str;".
De foutmelding die hij geeft zegt dat hij de view niet kan vinden.
Dit klopt omdat hij deze niet heeft aangemaakt.
Als ik alles weg gooi vanaf de "execute immdiate str;". Maakt hij wel de view aan.
Hij werkt dus alleen als ik geen code erachter schrijf.
Hoe kan ik dit oplossen. Hier is mijn code :
[/quote]
declare
str varchar2(200);
str2 varchar2(200);
imagewaarde varchar2(200);
waarde1 number(5,2);
waarde2 number(5,2);
waarde3 number(5,2);
waarde4 number(5,2);
waarde5 number(5,2);
waarde6 number(5,2);
waarde7 number(5,2);
waarde8 number(5,2);
waarde9 number(5,2);
waarde10 number(5,2);
waarde11 number(5,2);
waarde12 number(5,2);
waarde13 number(5,2);
waarde14 number(5,2);
l_int integer default 1;
begin
select image into imagewaarde from oracleragijog_2 where map_id = l_int;
str := 'create or replace view ordinates as ';
str := str||'select rownum rnum,t.* from the ';
str := str||'(select o.geom.sdo_ordinates from oracleragijog_2 o ';
str := str||'where o.map_id = '||l_int||') t';
execute immediate str;
select column_value into waarde1 from ordinates where rnum = 1;
select column_value into waarde2 from ordinates where rnum = 2;
select column_value into waarde3 from ordinates where rnum = 3;
select column_value into waarde4 from ordinates where rnum = 4;
select column_value into waarde5 from ordinates where rnum = 5;
select column_value into waarde6 from ordinates where rnum = 6;
select column_value into waarde7 from ordinates where rnum = 7;
select column_value into waarde8 from ordinates where rnum = 8;
select column_value into waarde9 from ordinates where rnum = 9;
select column_value into waarde10 from ordinates where rnum = 10;
select column_value into waarde11 from ordinates where rnum = 11;
select column_value into waarde12 from ordinates where rnum = 12;
select column_value into waarde13 from ordinates where rnum = 13;
select column_value into waarde14 from ordinates where rnum = 14;
str2 := 'create table temp_xy(image varchar2(50 byte),xwaarde float(126),';
str2 := str2||'ywaarde float(126)';
execute immediate str2;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde1, ywaarde = waarde2;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde3, ywaarde = waarde4;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde5, ywaarde = waarde6;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde7, ywaarde = waarde8;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde8, ywaarde = warde10;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde11, ywaarde = waarde12;
UPDATE spatial.temp_xy set image = imagewaarde, xwaarde = waarde13, ywaarde = waarde14;
end;
[quote]