Mostrando postagens com marcador oracle. Mostrar todas as postagens
Mostrando postagens com marcador oracle. Mostrar todas as postagens

quarta-feira, 22 de maio de 2019

Ordenar resultado de uma consutal sql (ORDER BY)

Resumo


SELECT campos1, campo2, campoN FROM TabelaX ORDER BY campo1 ASC|DESC


O principal objetivo deste post é explicar de maneira simples como utilizar a clausula ORDER BY para ordernar o resultado de saída e uma querie SQL.


Sintaxe:


SELECT campos1, campo2, campoN FROM TabelaX ORDER BY campo1,campo2,campoN ASC|DESC


Onde:


ORDER BY campo1 ASC|DESC - O resultado da query será ordenando de acordo com a coluna campo1. Vale lembrar que a ordenação pode ser crescente ASC ou decrescente DESC.


Ordenar em ordem crescente.


SELECT campos1, campo2, campoN FROM TabelaX ORDER BY campo1 ASC

Exemplo: Ordenado de forma crescente uma tabela pela coluna id


select * from dados.tb_arquivo_upload order by id asc






Ordenar em ordem decrescente.


SELECT campos1, campo2, campoN FROM TabelaX ORDER BY campo1 DESC


 Exemplo: Ordenado de forma decrescente uma tabela pela coluna id.


 select * from dados.tb_arquivo_upload order by id desc





terça-feira, 28 de março de 2017

Desbloquear usuário no oracle ORA-28000: the account is locked

Resumo


alter user NOME_USUARIO account unlock;


Introdução

Há situações em que o um determinado usuário pode ficar bloqueado no Oracle. Nesta breve dica vamos mostrar como desbloqueia esse usuário.


Desbloquear usuário

Para que seja possível desbloquear o usuário é necessário logar com o usuário System do banco de dados executar a query abaixo:




ALTER USER NOME_USUARIO ACCOUNT UNLOCK;


Onde:

  • NOME_USUARIO - Nome do usuário a ser bloqueado.


Bloquear usuário


Caso você queira bloquear o usuário basta executar a query abaixo:


ALTER USER NOME_USUARIO ACCOUNT LOCK;


Onde:


  • NOME_USUARIO - Nome do usuário a ser bloqueado.


segunda-feira, 30 de março de 2015

Pegar o próximo valor de uma sequencie no oracle


Resumo


  SELECT NOME_SEQUENCE.nextval FROM dual


Objetivo


O objetivo deste post é explicar de maneira simples e rápida como se pega o próximo valor de uma sequence no oracle.


Sintaxe:


 A sintaxe é bem simples:


  SELECT NOME_SEQUENCE.nextval FROM dual


Onde:

 NOME_SEQUENCE - Nome da sequence na qual é desejado pegar o próximo valor.


terça-feira, 21 de maio de 2013

Instalando o Oracle Java no Linux

Introdução

O principal objetivo deste post é explicar como se instala o Java da Oracle (Sun), neste pacote é incluso (JDK, JRE e o plugin para o navegador).

Instalação


Passo 1:

Abra o terminal.

Passo 2:

Adicione o repositório necessário. Para isso utilize o seguinte comando no terminal:

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:webupd8team/java

Passo 3: 

Atualize o conteúdo do apt.


sudo apt-get update

Passo 4:


Agora instale o Java da oracle.

sudo apt-get install oracle-java7-installer


Terminando a instalação no terminal você terá a versão 7 do java da Oracle instalado em seu ubuntu.

quarta-feira, 20 de março de 2013

Como descobrir o total de linhas de uma tabela


Essa é uma dica rápida e simples que pode lhe ajudar algum dia.
Caso você deseje saber o total de linhas em uma tabela basta executar o seguinte comando.

Sintaxe:

SELECT COUNT(*) FROM NOME_TABELA


Onde:

COUNT(*) - Trecho que faz a contagem de elementos da tabela indicada em NOME_TABELA.

NOME_TABELA - Nome da tabela ser pesquisada.


Exemplo:

SELECT COUNT(*) FROM CIDADES


Neste exemplo será exibido o total de linhas da tabela CIDADES.

terça-feira, 5 de julho de 2011

Aquirindo informações de sessão no oracle

Imagine um cenário que você precisa descobrir qual usuário está conectado em um determinado owner (usuario) no banco de dados (oracle), ou simplismente deseja verificar quais conexões e owner estão ativo.

Para solucionar tal problema basta criar um select na tabela v$session no oracle.

1. Exemplo:

SELECT
      * 
FROM  
      V$SESSION

Nesta query seria retornado todas informações relevante a tabela V$SESSION

2. Exemplo:

SELECT 
      USERNAME, 
      OSUSER, 
      MACHINE 
FROM
      V$SESSION



Nesta query seria retornado todas informações relevante ao nome do usuário(owner) utilizado no banco de dados(USERNAME) o nome do usuário do sistema operacional da pessoa que está logada (OSUSER) e o nome da máquina(MACHINE) da qual o usuário que está fazendo a consulta está logado.

Além destas consultas é possível fazer varias outras como por exemplo: saber o programa utilizado para conectar ao banco de dados, verificar a sessões activa e etc. 


quinta-feira, 5 de maio de 2011

Descobrir se uma determinada tabela, sinonimo ou usuário existe no oracle


Uma dúvida que surge as vezes é saber se uma determinada tabela ou sinonimo existe ou não em seu owner.


Descobrir se uma tabela existe
Para verificar se uma terminada tabela existe basta utilizar o seguinte comando sql.

Sintaxe:

SELECT * FROM ALL_ALL_TABLE WHERE TABLE_NAME =  'nome_tabela'

Exemplo:

SELECT * FROM ALL_ALL_TABLE WHERE TABLE_NAME = 
 'TABELA_USERS'

Neste exemplo será procurada a tabela TABELA_USERS, caso a mesma exista será exibida.



Descobrir se uma sinonimo existe


Para verificar se uma terminada sinonimo existe basta utilizar o seguinte comando SQL.


Sintaxe:


SELECT * FROM ALL_SYNONYMS WHERE SYNONYM_NAME =  'nome_sinonimo'




Exemplo:

SELECT * FROM ALL_SYNONYMS WHERE SYNONYM_NAME = 
 'SIN_TABELA_USERS'

Neste exemplo será procurada o sinonimo
 SIN_TABELA_USERS, caso a mesma exista será exibida.



Descobrir se um usuário existe


Para verificar se uma terminada usuário existe basta utilizar o seguinte comando SQL.


Sintaxe:

SELECT * FROM ALL_USERS WHERE USERNAME = 'nome_usuario'



Exemplo:

SELECT * FROM ALL_ALL_TABLE WHERE USERNAME = 
 'MAGUSCODE'

Neste exemplo será procurada a usuário MAGUSCODE, caso a mesma exista será exibida.


Dica

Para facilitar as busca você pode usar o comando LIKE em qualquer caso acima.
Um exemplos simples seria:


SELECT * FROM ALL_ALL_TABLE WHERE USERNAME LIKE 
 'MAG%'

Neste caso seria retornado todos os usuários que o nome comecem com MAG e terminem com qualquer sequência de caracteres.


Obs: Usar ' (plicas) nos demais exemplos implica que o nome do item procurado deve estar igual o que está entre as plicas. Caso seja 'joao' ele procurar por "joao" não por suas variações: "JOÂO", "Joao", "JoAO" e etc.

sexta-feira, 8 de abril de 2011

Visualizar todas tabelas do banco de dados no oracle e no msql

Há momentos que é necessário por algum motivo estranho ver todas tabelas existentes em seu banco de dados, ou alguma propriedade de uma determinada tabela. Hoje vou apresentar duas soluções simples.
(vale salientar que para executar os comandos abaixo é necessário estar logado no banco de dados)


1. Ver todas tabelas pelo MySql


show tables;



2. Ver todas tabelas no Oracle.


SELECT * FROM ALL_ALL_TABLES 


2.1 Caso seja necessário especificar o owner que a tabela pertença

SELECT * FROM ALL_ALL_TABLES WHERE OWNER='NOME_OWNER'

Exemplo:

SELECT * FROM ALL_ALL_TABLES WHERE OWNER='MARIO'

2.2 Caso seja necessário ver somente as tabelas de um determinado tablespace.


SELECT * FROM ALL_ALL_TABLES WHERE TABLESPACE_NAME='NOME_TABLESPACE'

Exemplo:

SELECT * FROM ALL_ALL_TABLES WHERE TABLESPACE_NAME='SYS'



quarta-feira, 9 de fevereiro de 2011

Versão nova do querymodificator

Finalmente atualizei o querymodificator corrigindo as bugs que existia na versão anterior.
Dentre as melhorias desta nova versão está o fato de todos comando SQL serem alterados para caracteres maiusculos e assim facilitar a visualização do próprio código SQL.


Para instala-lo é necessário, descompactar o arquivo em algum lugar de sua preferência e executra o arquivo install.sh.


DOWNLOAD

segunda-feira, 20 de dezembro de 2010

Criar, Deletar e Alterar tabelas com SQL



Um das coisas mais basicas a se saber quando começamos a mexer com SQL é a criação a manipulação de tabelas, abaixo vou explicar de maneira simples, como criar, alterar e deletar tabelas.


Criar Tabelas

Sintaxe:

CREATE TABLE NOME 
( TIPO_DADO NOME_COLUNA, 
  TIPO_DADO NOME_COLUNA1, 
 TIPO_DADO NOME_COLUNA2,
 TIPO_DADO NOME_COLUNAN )

TIPO_DADO = O tipo de dado que será armazenado nesta coluna.
NOME_COLUNA = O nome da coluna própriamente dita.

Exemplo:

CREATE TABLE USUARIO ( INTEGER ID, VARCHAR(32) NOME, VARCHAR(16) CPF);


Deletar Tabelas


DROP TABLE NOME 


Sintaxe:

NOME = Nome da tabela que será deletada.

Exemplo:

DROP TABLE USUARIO



Altera nome da tabela


ALTER TABLE


Adicionar uma determinada coluna a tabela

ALTER TABLE NOME_TABELA ADD CAMPO

Exemplo:

ALTER TABLE FUNCIONARIO ADD CPF VARCHAR(16)

Neste exemplo foi adicionado adicionado a tabela usuario a coluna CPF do tipo varchar.



Remover uma coluna de uma determinada tabela

ALTER TABLE NOME_TABELA DROP COLUNA

Exemplo:

ALTER TABLE FUNCINARIO DROP RG

Neste exemplo foi retirado a coluna RG da tabela FUNCIONARIO.

sexta-feira, 26 de novembro de 2010

Oracle: Diferença entre Join interno e join externo



Uma dúvida que surge quando começamos a fazer o join (junção de duas tabelas) é diferenciar de primeiro caso a diferença entre join interno (inner join) e join externo(outer join).
Hoje vamos ver de maneira simples como pode ser explicado tal confusão:


JOIN EXTERNO (OUTER JOIN)

O Join externo acontece quando desejamos pegar todas informações de duas tabelas destintas. Caso durante a junção da tabelas haja campos que não tenham valores (null) esses campos serão preenchidos com null. Cabe salientar que é possível escolher qual tabela favorecer neste tipo de join, pode ser a tabela da direita ou da esquerda. Como pode ser visto abaixo:

Sintaxe: 

SELECT COLUNAS 
FROM TABELA1 
RIGHT/LEFT OUTER JOIN  TABELA2 ON TABELA1.ID=TABELA2.ID_TAB1

Cabe salientar que no RIGHT/LEFT é utilizado só uma das opções ou RIGHT ou LEFT

Exemplo:

Neste exemplo existe duas tabelas distintas CIDADE e FABRICANTE, irei fazer um join externo para direita(right) das mesmas:

SELECT * FROM fabricante RIGHT OUTER JOIN cidade ON fabricante.cidade_id = cidade.id

Caso você esteja utilizando o Oracle o outer join pode ser feito utilizando a notação (+) ao lado tabela que você deseja que seja favorecida:

Sintaxe:

SELECT CAMPOS 
FROM TABELA1,TABELA2 
WHERE TABELA1.ID(+)=TABELA2.ID_TAB2

Exemplo:

SELECT
FROM CIDADE,FABRICANTE
WHERE
CIDADE.ID(+)=FABRICANTE.CIDADE_ID

Click na imagem para aumenta-la


JOIN INTERNO (INNER JOIN)

O Join interno acontece quando desejamos pegar todas informações de duas tabelas distintas, ao contrario do join interno este tipo de join pega somente as combinações validas onde não existe valores nulos.

Sintaxe: 

SELECT COLUNAS 
FROM TABELA1 
INNER JOIN  TABELA2 ON TABELA1.ID=TABELA2.ID_TAB1

Exemplo:

Neste exemplo existe duas tabelas destintas CIDADE e FABRICANTE, irei fazer um join interno.

SELECT * FROM fabricante  INNER JOIN cidade ON fabricante.cidade_id = cidade.id

Existe uma maneira mais fácil  e menor de fazer este tipo de join como é exposto abaixo:

Sintaxe:

SELECT CAMPOS 
FROM TABELA1,TABELA2 
WHERE TABELA1.ID=TABELA2.ID_TAB2

Exemplo:

SELECT * 
FROM CIDADE,FABRICANTE
WHERE
CIDADE.ID=FABRICANTE.CIDADE_ID


Click na imagem para aumenta-la





quarta-feira, 3 de novembro de 2010

Oracle: Criando sequence




Quando comecei a criar tabelas e guardar informações em banco de dados comecei pelo Oracle e depois usei durante um tempo o Msql, mas logo voltei para o Oracle.
No Msql existe uma função chamada AUTO_INCREMENT que pode ser utilizada para incrementar um id de uma tabela sozinho, que precisemos nos preocupar com isso. Porém no Oracle não existe esta função o que me levou durante um tempo a pesquisar sobre o assunto, uma solução que encontrei para tal problema foi a criação de SEQUENCE, que funciona quase da mesma maneira.

Criando uma SEQUENCE

Sintaxe:

CREATE SEQUENCE nome_sequence MINVALUE valor_minimo MAXVALUE valor_maximo INCREMENT BY valor_incremento START WITH valor_inicial CACHE valor_cache NOORDER NOCYLE

nome_sequencia = Nome que será dado a sequence.
valor_minimo = Valor mínimo da sequencie.
valor_maximo = Valor máximo que a sequence atingirá.
valor_incremento = Valor que será incrementado cada vez que uma sequence for requerida
valor_inicial  = Valor inicial da sequence, valor que iniciará a mesma.
valor_cache = Valor que informa o número de valores que o cache poderá conter, para uma consulta rápida.

Exemplo:

CREATE SEQUENCE SEQ_ID MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ;


Utilizando a sequence


Agora que sequence foi criada para utiliza-la, pendo seu próximo valor:

Sintaxe:
        nome_sequence.nextVal

Exemplo:
Existe uma tabela com as colunas id e nome, chama LISTA_CHAMADA:
Para inserir dados na mesma utilizando a sequence faremos o seguinte:

INSERT INTO LISTA_CHAMADA VALUES(seq_id.nextVal, 'Maria')

sexta-feira, 15 de outubro de 2010

Oracle: Atualizar coluna de uma tabela



Resumo:

UPDATE nome_tabela SET nome_coluna=novo_valor WHERE logica_para_filtrar


Uma maneira simples de atualizar o conteúdo de uma coluna em uma tabela no oracle é a seguinte:

Sintaxe:


UPDATE nome_tabela SET nome_coluna=novo_valor WHERE logica_para_filtrar

nome_tabela - O nome da tabela em questão


novo_valor    - Novo valor que será atribuído ao campo específico. 


nome_coluna - O nome da coluna que terá o dado modificado.


logico_para_filtra - Normalmente alguma lógica que filtre o item se deseja modificar.



Exemplo:

UPDATE tabela_magusCode SET nome_usuario='Robson' WHERE id = '1234'

Neste exemplo será atualizado o item nome para 'Robson' onde o id do mesmo é '1234' na coluna tabela_magusCode

segunda-feira, 27 de setembro de 2010

Criar usuario com privilégio de dba no oracle.


Resumo:

CREATE USER nome IDENTIFIED BY senha

GRANT DBA TO nome


Logo que comecei a usar o banco de dados Oracle uma dúvida que surgiu logo de início é como criar um usuário com privilégios de DBA.
Para isto é necessário seguir dois passos:

1º Passo: Criar um usuário no banco de dados:

Sintaxe:

CREATE USER nome IDENTIFIED BY senha

nome - Consiste no nome que o seu usúario terá.
senha - Consiste na senha que o usuário utilizará para logar no sistema.

Exemplo:

CREATE USER MAGUSCODE IDENTIFIED BY MAGUSCODE


Neste exemplo será criado um usuário com o nome de MAGUSCODE com a senha de acesso MAGUSCODE

2º Passo: Atribuir privilégio de DBA.

Sintaxe:

GRANT DBA TO nome

nome - Nome do usuário que será atribuído o privilégio de DBA.

Exemplo:

GRANT DBA TO MAGUSCODE


Neste exemplo será atribuído ao usuário MAGUSCODE o previlégio de DBA.

quinta-feira, 9 de setembro de 2010

Criar, Deletar, altera senha de usuário no oracle de maneira simples.

 

Para criar um usúario:

CREATE USER <usuario>> IDENTIFIED BY <>;

<> - nome do usuario a ser criado.

<> - senha do novo usúario.

Exemplo:
 CREATE USER maguscode IDENTIFIED BY maguscode



Alterar a senha

ALTER USER <> IDENTIFIED BY <>

<>   - nome do usuario que terá  a senha alterada.
<> - novo password utilizado.

Exemplo:

ALTER USER maguscode IDENTIFIED BY maguscode2


Deletar usúario:

DROP USER <usuario>>

<usuario>> - nome do usúario a ser deletado.

Exemplo:

DROP USER maguscode