Я создаю хранимую процедуру для получения данных из корзины в хранилище объектов и загрузки их в таблицу. Но я получаю ошибку ORA-00904
при создании SP. Любая идея, что может быть не так?
create or replace procedure watcher_load
is
v_exists varchar2(1) := 'F';
CURSOR c_filelist is
select replace(regexp_substr(OBJECT_NAME ,'[^_]*(_|$)',1,2), '_', '' )
object_name,
bytes
from DBMS_CLOUD.LIST_OBJECTS('user_cred','https://objectstorage.oraclecloud.com/n/bunge/bingo_subside/o/')
where object_name like '20%_%_bingo_hourly_res.json';
begin
FOR i in c_filelist
LOOP
select 'T' into v_exists from watcher_table where filename = i.object_name;
if v_exists != 'T' then
insert into watcher_table (region, filename, bytes)
values (i.region, i.object_name, i.bytes);
end if;
END LOOP;
commit;
end watcher_load;
/
Ошибки для PROCEDURE WATCHER_LOAD:
LINE/COL ERROR
-------- -----------------------------------------------------------------
6/9 PL/SQL: SQL Statement ignored
9/15 PL/SQL: ORA-00904: "DBMS_CLOUD"."LIST_OBJECTS": invalid
identifier
17/4 PL/SQL: SQL Statement ignored
17/65 PL/SQL: ORA-00904: "I"."FILENAME": invalid identifier
17/65 PLS-00364: loop index variable 'I' use is invalid
19/9 PL/SQL: SQL Statement ignored
20/39 PLS-00364: loop index variable 'I' use is invalid
20/41 PL/SQL: ORA-00984: column not allowed here