Alguns códigos PL/SQL podem não encontrar o próprio OWNER dentro da aplicação.
Procedimento abaixo mostra como a solução é simples para quando um código PL não encontra objetos do próprio schema.
CREATE TABLE lana.user1 (x NUMBER); Table created DECLARE x lana.user1.x%TYPE; BEGIN NULL; END; / ORA-06550: line 3, column 12: PLS-00302: component 'LANA' must be declared ORA-06550: line 3, column 6: PL/SQL: Item ignored
Observe que o código pl/sql não reconheceu o owner, o que é estranho pois não precisamos identificar o owner dentro do código.
SQL> DECLARE x user1.x%TYPE; BEGIN NULL; END; / PL/SQL procedure successfully completed.
SQL> conn / as sysdba Connected. SQL> CREATE OR REPLACE SYNONYM LANA FOR LANA.LANA; Synonym created.
Você é obrigado a criar o sinônimo referenciando um owner de um outro owner obviamente.
DECLARE x lana.user1.x%TYPE; BEGIN NULL; END; / PL/SQL procedure successfully completed
Autor: Leandro Lana
Trabalho com banco de dados Oracle desde 2006, já trabalhei com as plataformas 9i, 10G, 11G, 12C, 18C, 19C e 21(ainda em testes).
Trabalhando atualmente como consultor Oracle na MigraTI Soluções em TI como administrador de banco de dados Oracle, SQL-Server, MySQL e Postgresql.
Contato: leandro.lana@migrati.com.br
Fone: (47) 9191-6052 / (47) 3328 0996
Certificações:
OCA 10G.
OCP 10G.
OCE Linux.
OCE RAC/Cluster.
MCP SQL-Server 2008.
MCITP SQL-Server 2008.
DB2 Fundamentals.