Получение ORA-00904 при создании хранимой процедуры, которая ссылается на пакет dbms - PullRequest
1 голос
/ 01 марта 2020

Я создаю хранимую процедуру для получения данных из корзины в хранилище объектов и загрузки их в таблицу. Но я получаю ошибку 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

1 Ответ

0 голосов
/ 03 марта 2020

Согласно oracle - Примечание. Для запуска подпрограмм DBMS_CLOUD с пользователем, отличным от ADMIN, вам необходимо предоставить привилегии EXECUTE этому пользователю. Например, выполните следующую команду как ADMIN для
grant privileges to adwc_user Ссылка здесь- https://docs.oracle.com/en/cloud/paas/autonomous-data-warehouse-cloud/user/dbms-cloud.html#GUID -3D0A5361-672 C -467D-AA90-656B1B4D4E37

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...