Pular para o conteúdo principal

Mais uma sobre Oracle

Como descobrir quais tabelas utilizam um determinado campo numa constraint?‏


Supondo que precisamos saber quais tabelas utilizam o campo CLIENTE_ID em constraints, podemos executar o seguinte comando:

SQL> select *
     from user_cons_columns
     where column_name = 'CLIENTE_ID'
       and substr(constraint_name,1,3) <> 'SYS';

Comentários

Postagens mais visitadas deste blog

Tipos de Dados RAW e LONG RAW no Oracle

RAW Colunas que armazenam valores binários com tamanho variável máximo de 255 bytes). O tamanho tem que ser informado (este tipo é mais usado para armazenar seqüências de caracteres gráficos).   LONG RAW Colunas que armazenam valores binários com tamanho variável (máximo de 2G bytes); o tamanho não deve ser informado (este tipo é mais usado para armazenar seqüências de caracteres gráficos). Os tipos LONG e LONG RAW: - Somente é permitido um campo por tabela; - Não podem fazer parte de cláusulas WHERE, GROUP BY, ORDER BY, CONNECT BY ou DISTINCT - Não podem ser usados em expressões (SUBSTR, INSTR, etc); - Não podem ser indexes; - Não podem aparecer em expressões ou condições; - Não podem ser passados como argumentos para procedures ou funções;

Comentários em Oracle

Às vezes precisamos criar comentários para tabelas e/ou colunas de uma tabela em Oracle. Você sabe como fazer isso? Use o comando COMMENT: SQL> CREATE TABLE TB_CLIENTES (CODIGO   NUMBER(7),   2                            NOME     VARCHAR2(200) )   3  / Table created. SQL> COMMENT ON COLUMN tb_clientes.codigo IS 'Código do Cliente'   2  / Comment created. SQL> COMMENT ON COLUMN tb_clientes.nome IS 'Nome do Cliente'   2  / Comment created. 

Caracteres de Escape e o Oracle

Recebi essa dica de um grande amigo e a achei muitíssimo interessante! Com o like é possível fazer pesquisas do tipo ABC%(abc qq coisa de qq tamanho), A_C(A, uma coisa, C)....  Mas, e se você quiser procurar especificamente o "%" ou o "_"???  A solução é usarmos um caracter para "escapar" esses caracteres especiais...  Ele pode ser qualquer caracter, mas, precisa ser informado através do ESCAPE... Por exemplo, quero saber todas as tabelas do banco que começam com "TB_RH": SQL> select *          from dba_objects          where object_name like 'TB\_RH%' escape '\'; Referência:  http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/conditions007.htm#sthref2799 Valeu Leonardo Rezende!