0

関数内で、

私は次の機能を持っています、

create or replace 
FUNCTION DiffMaxMinPrice
 return double precision
is 
 diffprice double precision := 0;
 minprice long; 
 maxprice long;
 value long;
 indexid number(19,0);
begin

for row in 
 (SELECT  x.* into minprice , maxprice 
       FROM sampletable ,
            XMLTABLE ('//book'
                      PASSING sampletable.xmlcol
                      COLUMNS maxprice VARCHAR2(30) PATH '@maxprice',
                              minprice VARCHAR2(30) PATH '@minprice') x 
                              where sampletable.indexid = 2)
 LOOP
  ....
 END LOOP;


 return 1;
end;

2 でハードコーディングする代わりに、変数 idxid を代用したいと思います。そこに変数を代入すると、無効な番号が取得され続けます。

indexid :=2 そして、selectステートメントのwhere部分は

sampletable.indexid = indexid

4

1 に答える 1