Privilégio de Objeto +START WITH + CONNECT BY PRIOR Oracle
Como permitir outro usuário acessar a tabela de outro usuário no Oracle? Para isso é necessário ter permissão ou ser dono da tabela, o comando é:
Permissão select:
GRANT select ON tabela TO nomedousuario
Opções:
select, insert, update, delete
CREATE SYNONYM team2 FOR ora1.departments
SELECT * FROM ALL_TABLES WHERE OWNER = ‘ORA1′ OR OWNER = ‘ORA22′
SELECT last_name ||’ reports to ‘|| PRIOR last_name “Walk Top Down”
FROM employees
START WITH employee_id = ’101′
CONNECT BY PRIOR employee_id = manager_id
SELECT LPAD(last_name, LENGTH(last_name)+(LEVEL*2)-2, ‘_’)
AS org_chart
FROM employees
START WITH first_name = ‘Steven’ AND last_name=’King’
CONNECT BY PRIOR employee_id = manager_id
LPAD colocar qualquer caracter q eu quiser a esquerda.
SELECT LPAD(last_name, LENGTH(last_name)+(LEVEL*2)-2, ‘_’)
AS org_chart
FROM employees
START WITH first_name = ‘Steven’ AND last_name=’King’
CONNECT BY PRIOR employee_id = manager_id
// ELIMINAR HIGGINS MAS MANTÉM RAMIFICAÇÃO
SELECT LPAD(last_name, LENGTH(last_name)+(LEVEL*2)-2, ‘_’)
AS org_chart
FROM employees WHERE last_name != ‘Higgins’
START WITH first_name = ‘Steven’ AND last_name=’King’
// ELIMINA RAMIFICAÇÃO
SELECT LPAD(last_name, LENGTH(last_name)+(LEVEL*2)-2, ‘_’)
AS org_chart
FROM employees
START WITH first_name = ‘Steven’ AND last_name=’King’
CONNECT BY PRIOR employee_id = manager_id AND last_name != ‘Higgins’
// ELIMINA RAMIFICAÇÃO OU ASSIM veja o PRIOR
SELECT LPAD(last_name, LENGTH(last_name)+(LEVEL*2)-2, ‘_’)
AS org_chart
FROM employees
START WITH first_name = ‘Steven’ AND last_name=’King’
CONNECT BY manager_id = PRIOR employee_id AND last_name != ‘Higgins’
Relatório de modelo organizacional do departamento que o empregado Mourgos trabalha. Mostre os sobrenomes, sálarios e IDs dos departamentos.
SELECT last_name, salary, department_id FROM employees
START WITH last_name=’Mourgos’
CONNECT BY PRIOR employee_id = manager_id
Gere um relatório mostrando a hierarquia de gerentes do emrpegado Lorentz. Mostre seu gerente imediato em primeiro lugar.
SELECT last_name, salary, department_id
FROM employees WHERE last_name != ‘Lorentz’
START WITH last_name=’Lorentz’
CONNECT BY PRIOR manager_id = employee_id
Gere um relatório mostrando a hierarquia gerencial, inicie com a pessoa de maior nível hierárquico, exclua todas as pessoas com o cargo IT_PROG e exclua também o empregado DE Hann e os empregados que repostam a ele.
SELECT last_name, salary, department_id
FROM employees WHERE job_id != ‘IT_PROG’
START WITH last_name=’King’
CONNECT BY PRIOR employee_id= manager_id AND last_name != ‘De Haan’



01. dez, 2011 






