我有一個具有以下pl/sql塊的存儲過程。該塊在for語句中使用select查詢,但我需要將該靜態變量更改爲動態查詢。當我改變它有錯誤。在隱式遊標中有沒有辦法在FOR LOOP中使用變量。用for循環打開隱式遊標
declare
sql_query varchar2(32767) := 'select ctlchar ';
kpiNameQuery varchar2(600);
isWg boolean := true;
begin
IF isWG then
kpiNameQuery := 'select distinct KPI_NAME from weeklykpi where kpi_name in (select kpi_wg from auxillary.kpi_types) order by 1';
Else
kpiNameQuery := 'select distinct KPI_NAME from weeklykpi where kpi_name in (select kpi_wg1 from auxillary.kpi_types) order by 1';
End IF;
for KPI_NAME in kpiNameQuery
loop
sql_query := sql_query || ' , min(case when KPI_NAME = '''||x.KPI_NAME||''' then KPI_VALUE end) as '||x.KPI_NAME;
dbms_output.put_line(sql_query);
end loop;
end;
我應該關閉光標嗎? – kinkajou
@Kitex我已經更新了我的答案。 – user75ponic