Erro ao criar objeto no schema do usuário. Objeto não existe

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Tinho
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 321
Registrado em: Seg, 16 Nov 2009 4:50 pm
Localização: São Paulo - SP

Senhores, boa tarde.

Recentemente eu baixe o Oracle XE 21c e loguei no banco como SYSDBA e criei o seguinte ambiente:

Selecionar tudo


CREATE TABLESPACE Desenvolvimento
LOGGING DATAFILE 'Desenvolvimento.dbf'
SIZE 100m AUTOEXTEND ON NEXT 100m EXTENT MANAGEMENT LOCAL;

ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE;

CREATE USER DEV
IDENTIFIED BY DEV1234
DEFAULT TABLESPACE DESENVOLVIMENTO
QUOTA UNLIMITED ON DESENVOLVIMENTO;

GRANT CREATE SESSION,
      ALTER SESSION,
      CREATE TABLE,
      CREATE PROCEDURE,
      CREATE VIEW,
      CREATE MATERIALIZED VIEW,
      CREATE TRIGGER,
      CREATE SEQUENCE,
      CREATE ANY DIRECTORY,
      CREATE TYPE,
      CREATE SYNONYM
TO DEV;

grant debug connect session to DEV;
grant debug any procedure to DEV;
grant execute any procedure to DEV;
grant compile procedure to DEV;

Porém ao tentar criar uma PACKAGE BODY com o usuário DEV, a mesma é compilada:

Selecionar tudo


CREATE OR REPLACE PACKAGE BODY DEV.PKG_MIGRACAO_TESTE
AS
BEGIN
  NULL;
END PKG_MIGRACAO PKG_MIGRACAO_TESTE;



Porém recebo o erro abaixo:

1/18 PLS-00201: o identificador 'PKG_MIGRACAO_TESTE' deve ser declarado
1/18 PLS-00304: n?o e possivel compilar o texto de 'PKG_MIGRACAO_TESTE' sem a respectiva especificac?o
0/0 PL/SQL: Compilation unit analysis terminated
Ao consultar na tabela de objetos, posso ver que a package foi criada, porém está com o status de inválida:

Selecionar tudo


SELECT AO.OWNER
      ,AO.OBJECT_NAME
      ,AO.OBJECT_TYPE
      ,AO.CREATED
      ,AO.LAST_DDL_TIME
      ,AO.STATUS
      ,AO.TEMPORARY
  FROM ALL_OBJECTS AO
 WHERE AO.OBJECT_NAME = 'PKG_MIGRACAO_TESTE';

OWNER OBJECT_NAME OBJECT_TYPE CREATED LAST_DDL_TIME STATUS TEMPORARY
1 DEV PKG_MIGRACAO_TESTE PACKAGE BODY 09/09/2024 11:49:27 09/09/2024 11:49:27 INVALID N
Mas ao tentar recompila-la:

Selecionar tudo


EXEC DBMS_DDL.ALTER_COMPILE('PACKAGE BODY', 'DEV', 'PKG_MIGRACAO_TESTE');

Recebo o erro abaixo:

ORA-20000: Unable to compile PACKAGE BODY "DEV"."PKG_MIGRACAO_TESTE", insufficient privileges or does not exist
ORA-06512: em "SYS.DBMS_DDL", line 243
ORA-06512: em line 1
Mesmo estando logado como SYSDBA.

Portanto, acredito que não seja um problema de permissão.

Por favor, poderiam me ajudar a entender o que está acontecendo?

Grato.
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 215
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

Bom dia,

Não faltou permissão para o user DEV criar package ???
GRANT CREATE SESSION,
ALTER SESSION,
CREATE TABLE,
CREATE PROCEDURE,
CREATE VIEW,
CREATE MATERIALIZED VIEW,
CREATE TRIGGER,
CREATE SEQUENCE,
CREATE ANY DIRECTORY,
CREATE TYPE,
CREATE SYNONYM
TO DEV;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante