<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8394059404684599395</id><updated>2024-10-08T23:05:21.690-07:00</updated><category term="sql"/><category term="banco de dados"/><category term="database"/><category term="postgres"/><category term="oracle"/><category term="oracle 11g"/><category term="postgreSQL"/><category term="DDL"/><category term="DML"/><category term="dblink"/><category term="dblink_connect"/><category term="function postgres"/><category term="funções"/><category term="aprendendo"/><category term="Copiar dados postgres"/><category term="DCL"/><category term="SELECT"/><category term="SQL SERVER"/><category term="access database dblink"/><category term="banco de dados distribuídos"/><category term="dblink_exec"/><category term="function"/><category term="função de caractere oracle"/><category term="group by"/><category term="having"/><category term="ilike"/><category term="inner join"/><category term="join"/><category term="like"/><category term="mysql"/><category term="oracle 10 XE"/><category term="oracle 9i"/><category term="plpgsql"/><category term="sequel"/><category term="sgbd"/><category term="visões postgres"/><category term="11g"/><category term="12c"/><category term="9i"/><category term="ALL"/><category term="AVG"/><category term="CONSTRAINT ORACLE"/><category term="Comando similar to"/><category term="Criando usuário oracle"/><category term="Função cast"/><category term="Funções de agregação"/><category term="GREATEST"/><category term="LEAST"/><category term="LOWER Oracle"/><category term="MAX"/><category term="MIN"/><category term="MONTHS_BETWEEN"/><category term="Modelagem de dados"/><category term="NVL"/><category term="NVL2 Oracle"/><category term="Operadores Oracle"/><category term="PgAdmin 3"/><category term="PostgreSQL 9.2"/><category term="REPLACE ORACLE"/><category term="SQL 86"/><category term="SQL 92"/><category term="SQRT"/><category term="SUM"/><category term="UPPER Oracle"/><category term="VIEW ORACLE"/><category term="alterar coluna com dados"/><category term="banco de dados group by"/><category term="banco de dados oracle"/><category term="banco de dados orientado a objetos"/><category term="banco de dados orientado a objetos no postgres"/><category term="banco de dados remoto"/><category term="bdd"/><category term="cast postgres"/><category term="chave estrangeira"/><category term="chave primária"/><category term="comando copy"/><category term="comando de inserção postgres"/><category term="comando ilike"/><category term="comando like postgres"/><category term="comandos básicos."/><category term="copy"/><category term="count"/><category term="create"/><category term="create database"/><category term="create table"/><category term="create view"/><category term="criando banco de dados"/><category term="criando tabela com instrução select"/><category term="criando uma visão no banco de dados postgres"/><category term="database object-oriented"/><category term="database object-oriented on postgres"/><category term="databases"/><category term="dblink no postgres"/><category term="dblink postgres"/><category term="dblink_disconnect"/><category term="define"/><category term="download"/><category term="download java"/><category term="download netbeans"/><category term="download postgresql 9.2.2"/><category term="dql"/><category term="drop"/><category term="equijoin"/><category term="erro ao conectar"/><category term="faculdade"/><category term="fazendo junções postgres"/><category term="function greatest and least"/><category term="function my sql"/><category term="function setof"/><category term="função de agrupamento"/><category term="função in oracle"/><category term="função nvl"/><category term="função que substitui campo nulo"/><category term="funções DBLINK"/><category term="gatilhos"/><category term="if exists"/><category term="in"/><category term="iniciando o serviço do postgresql"/><category term="iniciar postgres via cmd"/><category term="insert com select"/><category term="insert postgres"/><category term="java"/><category term="junção de tabelas"/><category term="junções"/><category term="linux"/><category term="loop"/><category term="maior valor em uma lista"/><category term="menor valor em uma lista"/><category term="modificar coluna com dados"/><category term="netbeans 7.2.1 completo"/><category term="nvl oracle"/><category term="operador all oracle"/><category term="operador any"/><category term="operador some"/><category term="parte 2"/><category term="passo a passo"/><category term="pg_ctl"/><category term="postgres funções de interligação de banco de dados"/><category term="postgresql 9.2.2"/><category term="quantidade de meses entre dois campos"/><category term="raiz quadrada oracle"/><category term="restart database PostgreSQL using CMD"/><category term="restrição orable"/><category term="retorno de multiplos valores."/><category term="sbdd"/><category term="selecionando dados em banco de dados remoto"/><category term="server doesn&#39;t listen postgres"/><category term="similar to"/><category term="sistemas de banco de dados distribuidos"/><category term="solução"/><category term="sqlserver"/><category term="start PostgreSQL"/><category term="stop database PostgreSQL"/><category term="subquery"/><category term="table com select"/><category term="trigger"/><category term="trigger postgres"/><category term="triggers"/><category term="type"/><category term="undefine"/><category term="usar o comando select"/><category term="variáveis de substituição"/><category term="variáveis na condição oracle"/><category term="view"/><category term="view postgres"/><category term="visões no oracle"/><category term="windows"/><title type='text'>Student SQL</title><subtitle type='html'>SQL, PostgreSQL, Oracle, MySQL, SQL Server, DB2 e Java</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>56</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-5778549699440064594</id><published>2013-07-02T13:58:00.000-07:00</published><updated>2013-07-02T13:58:28.812-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iniciando o serviço do postgresql"/><category scheme="http://www.blogger.com/atom/ns#" term="iniciar postgres via cmd"/><category scheme="http://www.blogger.com/atom/ns#" term="passo a passo"/><category scheme="http://www.blogger.com/atom/ns#" term="pg_ctl"/><category scheme="http://www.blogger.com/atom/ns#" term="PostgreSQL 9.2"/><category scheme="http://www.blogger.com/atom/ns#" term="restart database PostgreSQL using CMD"/><category scheme="http://www.blogger.com/atom/ns#" term="start PostgreSQL"/><category scheme="http://www.blogger.com/atom/ns#" term="stop database PostgreSQL"/><title type='text'>START, STOP, RESTART PostgreSQL via CMD</title><content type='html'>Pra aqueles que tiverem algum problema com a inicialização ou finalização do serviço do PostgreSQL, aqui vai os comandos para iniciar (START) e parar (STOP) o servidor de banco de dados.&lt;br /&gt;
&lt;br /&gt;
Para iniciar (START) o servidor de banco de dados, execute os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
1- Aperte Windows&lt;br /&gt;
2- Se for windows 7 ou superior digite cmd e aperte Enter.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Se não, vá em Executar e digite cmd e aperte Enter.&lt;br /&gt;
3- Após aberto o Prompt de comando do Windows - Navegue até a pasta BIN do PostgreSQL&lt;br /&gt;
&amp;nbsp; &amp;nbsp; Ex.: &lt;b&gt;CD&lt;/b&gt; &lt;i&gt;C:/Program Files/PostgreSQL/9.2/bin&lt;/i&gt;&lt;br /&gt;
4- Na pasta bin digite o seguinte comando&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;b&gt;pg_ctl&lt;/b&gt; -D &quot;c:/Program Files/PostgreSQL/9.2/data&quot; &lt;b&gt;start&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;br /&gt;
Obs.: Note que o -D tem que ser maiúsculo para que o comando seja executado perfeitamente.&lt;br /&gt;
&lt;br /&gt;
Para parar o servidor o procedimento é o mesmo, trocando somente a ultima palavra START por STOP.&lt;br /&gt;
&lt;br /&gt;
Agora para se fazer um desligamento com segurança, sem que seja fechada todas as conexões, digite a opção -s depois do comando. Ex.:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;pg_ctl&lt;/b&gt;&amp;nbsp;-D &quot;c:/Program Files/PostgreSQL/9.2/data&quot;&amp;nbsp;&lt;b&gt;stop -s&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-size: x-large;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
Podemos fazer a reinicialização do servidor com o mesmo comando, mudando a palavra stop por &lt;b&gt;RESTART&lt;/b&gt;, o que desliga o servidor e reinicia o mesmo.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;pg_ctl&lt;/b&gt;&amp;nbsp;-D &quot;c:/Program Files/PostgreSQL/9.2/data&quot; &lt;b&gt;restart&lt;/b&gt;&lt;b&gt;&amp;nbsp;-s&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-size: x-large;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/5778549699440064594/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2013/07/start-stop-restart-postgresql-via-cmd.html#comment-form' title='9 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5778549699440064594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5778549699440064594'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2013/07/start-stop-restart-postgresql-via-cmd.html' title='START, STOP, RESTART PostgreSQL via CMD'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-2697339068870039804</id><published>2013-02-15T18:43:00.000-08:00</published><updated>2013-02-15T18:43:14.145-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados distribuídos"/><category scheme="http://www.blogger.com/atom/ns#" term="bdd"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink no postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink_connect"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink_exec"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="sbdd"/><category scheme="http://www.blogger.com/atom/ns#" term="sistemas de banco de dados distribuidos"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Criando um SBDD - PostgreSQL - DBLINK</title><content type='html'>Olá galera,&amp;nbsp;&lt;div&gt;
vamos falar sobre Sistemas de Banco de Dados Distribuídos usando as funções de interligação de banco de dados DBLINK no PostgreSQL 9.2.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Nessa postagem, vamos ver:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
- Criação de dois bancos de dados BD_A e BD_B&lt;/div&gt;
&lt;div&gt;
- Inserção da função DBLINK nos dois BD&lt;/div&gt;
&lt;div&gt;
- Interligação dos BD&lt;/div&gt;
&lt;div&gt;
- Inserção de registros para testes usando DBLINK&lt;/div&gt;
&lt;div&gt;
- Consulta em um banco de dados usando DBLINK&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bom, inicialmente vamos falar um pouco sobre banco de dados distribuídos para entender o que será desenvolvido nessa postagem e qual a funcionalidade de um sistema distribuído. Um BDD ou banco de dados distribuídos, é todo o sistema que distribua responsabilidades de gerenciamento dos dados, mas mantém uma visão global como se o sistema fosse um simples sistema de banco de dados centralizado. A distribuição dos dados pode ser feita horizontalmente quando queremos dividir grupos de registros utilizando algum critério para isso, Ex.: Salário &amp;gt; 6000, Idade &amp;gt; 65, entre outros critérios de distribuição que podem ser utilizados.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Além da distribuição horizontal, podemos em um BDD dividir as relações ou tabelas verticalmente, nessa divisão a tabela é que é dividida, e as relações mantém um identificador de união das partes que será utilizado posteriormente para a recuperação da tabela original. Um exemplo,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Uma tabela Cliente(id_cliente, nome, rua, numero, bairro, cidade, estado, ddd, telefone)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Podemos dividi-la assim:&lt;/div&gt;
&lt;div&gt;
CLIENTE(id_cliente, nome)&lt;/div&gt;
&lt;div&gt;
CLIENTE(id_cliente, rua, numero, bairro, cidade, estado)&lt;/div&gt;
&lt;div&gt;
CLIENTE(id_cliente, ddd, telefone)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Na sequencia, podemos recuperar ela utilizando o identificador chave id_cliente para juntar as partes utilizando o comando de junção no SQL JOIN, sobre&amp;nbsp;&lt;a href=&quot;http://studentsql.blogspot.com.br/search?q=join&quot;&gt;JOIN&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Exemplo&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;SELECT &lt;/b&gt;C1.ID_CLIENTE, C1.NOME, C2.RUA, C2.NUMERO, C2.BAIRRO, C2.CIDADE, C2.ESTADO, C3.DDD, C3.TELEFONE&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;FROM &lt;/b&gt;CLIENTE C1, CLIENTE C2, CLIENTE C3&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;WHERE &lt;/b&gt;C1.ID_CLIENTE = C2.ID_CLIENTE&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;AND &lt;/b&gt;C3.ID_CLIENTE = C2.ID_CLIENTE;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Esse comando recupera a tabela original juntando as partes delas, claro que esse conhecimento das partes e de como está distribuída a tabela são essenciais.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Esse comando acima precisa das funções DBLINK e das conexões com cada uma das bases de dados que armazene cada uma das tabelas. Mas não será o foco dessa postagem. Caso queiram postem comentários que eu crio um post específico para esse tema sobre fragmentação de dados.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bom vamos ao o que foi proposto,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
- Agora que sabemos mais ou menos o que é um banco de dados distribuído, vamos criar dois bancos de dados, vamos criar na mesma máquina para exemplificar o funcionamento. Vai perceber claramente que o desenvolvimento para bancos de dados distribuídos realmente não vai mudar nada além do protocolo de identificação o IP.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Abra o PostgreSQL&lt;/div&gt;
&lt;div&gt;
Conecte-se a algum servidor e estabeleça os seguintes comandos, claro para quem não sabe como criar um banco de dados no postgres, segue o link&amp;nbsp;&lt;a href=&quot;http://studentsql.blogspot.com.br/2012/05/create-database.html&quot;&gt;Criando um Banco de Dados&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
CREATE DATABASE BD_A&lt;/div&gt;
&lt;div&gt;
ENCODING &#39;WIN 1252&#39;&lt;/div&gt;
&lt;div&gt;
CONNECTION LIMIT 10;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Depois, vamos criar outro banco de dados para exemplificar os testes.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
CREATE DATABASE BD_B&lt;/div&gt;
&lt;div&gt;
ENCODING &#39;WIN 1252&#39;&lt;/div&gt;
&lt;div&gt;
CONNECTION LIMIT 10;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
-- Bom, a primeira etapa está concluída, vamos agora compilar funções DBLINK dentro dos dois bancos de dados&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Segue o link das funções DBLINK, copie o código e rode ele no seu postgres no SQL Editor.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://studentsql.blogspot.com.br/2013/02/funcoes-dblink-postgresql.html&quot;&gt;Funções DBLINK&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Você terá que executar as funções nos dois bancos de dados, para que os dois possam fazer inserção e alterações nos dados além de consultas.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--Agora, vamos interligar os bancos de dados&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Para conectar ao outro banco de dados, utilizamos a função DBLINK_CONNECT que tem a seguinte sintaxe&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Primeiramente vamos criar a conexão do banco de dados A com o B, então claro rode este comando no banco de dados A.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Coloque em password a senha do seu usuario claro, o que você estiver utilizando para executar os testes&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
SELECT DBLINK_CONNECT(&#39;conexao_bd_a_bd_b&#39;,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;hostaddr = 127.0.0.1&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;port = 5432&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;user = postgres&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;password = senha_do_user&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dbname = BD_B&#39;);&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
No banco de dados B execute&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
SELECT DBLINK_CONNECT(&#39;conexao_bd_b_bd_a&#39;,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;hostaddr = 127.0.0.1&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;port = 5432&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;user = postgres&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;password = senha_do_user&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dbname = BD_A&#39;);&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--Bom agora, criamos duas conexões, vamos agora criar uma tabela claro, não temos tabelas ainda, já que eu não as criei antes de fazer as conexões e não só por isso, já que estamos falando sobre banco de dados distribuídos, vamos então criar nossas tabelas já utilizando as funções DBLINK_EXEC.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--No banco de dados A&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
SELECT DBLINK_EXEC(&#39;conexao_bd_a_bd_b&#39;, &#39;CREATE TABLE TB_TESTE(ID INTEGER, NOME VARCHAR)&#39;);&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--Agora conectado no banco de dados B&lt;/div&gt;
&lt;div&gt;
SELECT DBLINK_EXEC(&#39;conexao_bd_b_bd_a&#39;, &#39;CREATE TABLE TB_TESTE(ID INTEGER, NOME VARCHAR)&#39;);&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Pronto, criamos a mesma tabela nos dois bancos de dados.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--Vamos fazer a inserção de um registro agora&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--No banco de dados A&lt;/div&gt;
&lt;div&gt;
SELECT DBLINK_EXEC(&#39;conexap_bd_a_bd_b&#39;, &#39;INSERT INTO TB_TESTE(ID, NOME) VALUES&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&#39;&#39;1&#39;&#39;, &#39;&#39;INSERÇÃO BD A NO B&#39;&#39;)&#39;);&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--Agora, no banco de dados B&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
SELECT DBLINK_EXEC(&#39;conexap_bd_b_bd_a&#39;, &#39;INSERT INTO TB_TESTE(ID, NOME) VALUES&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&#39;&#39;1&#39;&#39;, &#39;&#39;INSERÇÃO BD B NO A&#39;&#39;)&#39;);&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--Pronto, se tudo ocorreu bem, agora inserimos dois registros, um em cada banco de dados, vamos então fazer a consulta para terminar este post, eu estou com sono já =z&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--Para fazer a consulta utilizamos o comando DBLINK, vamos ver como funciona na pratica&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
SELECT DBLINK(&#39;conexao_bd_a_bd_b&#39;, &#39;SELECT * FROM TB_TESTE&#39;) TB_AUXILIAR(ID INTEGER, NOME VARCHAR);&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--No banco de dados B&lt;/div&gt;
&lt;div&gt;
SELECT DBLINK(&#39;conexao_bd_b_bd_a&#39;, &#39;SELECT * FROM TB_TESTE&#39;) TB_AUXILIAR(ID INTEGER, NOME VARCHAR);&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--E pronto, realizado nossos testes, desenvolvido algum conhecimento sobre banco de dados distribuídos, espero que ajudem em alguma coisa.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Abraço&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/2697339068870039804/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2013/02/criando-um-sbdd-postgresql-dblink.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/2697339068870039804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/2697339068870039804'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2013/02/criando-um-sbdd-postgresql-dblink.html' title='Criando um SBDD - PostgreSQL - DBLINK'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-4677369234734000312</id><published>2013-02-15T18:21:00.001-08:00</published><updated>2013-02-15T18:21:49.058-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="funções"/><category scheme="http://www.blogger.com/atom/ns#" term="funções DBLINK"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres funções de interligação de banco de dados"/><title type='text'>Funções DBLINK - PostgreSQL</title><content type='html'>&lt;br /&gt;
-- Adjust this setting to control where the objects get created.&lt;br /&gt;
SET search_path = public;&lt;br /&gt;
&lt;br /&gt;
-- dblink_connect now restricts non-superusers to password&lt;br /&gt;
-- authenticated connections&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_connect (text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_connect&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_connect (text, text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_connect&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
-- dblink_connect_u allows non-superusers to use&lt;br /&gt;
-- non-password authenticated connections, but initially&lt;br /&gt;
-- privileges are revoked from public&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_connect_u (text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_connect&#39;&lt;br /&gt;
LANGUAGE C STRICT SECURITY DEFINER;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_connect_u (text, text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_connect&#39;&lt;br /&gt;
LANGUAGE C STRICT SECURITY DEFINER;&lt;br /&gt;
&lt;br /&gt;
REVOKE ALL ON FUNCTION dblink_connect_u (text) FROM public;&lt;br /&gt;
REVOKE ALL ON FUNCTION dblink_connect_u (text, text) FROM public;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_disconnect ()&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_disconnect&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_disconnect (text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_disconnect&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_open (text, text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_open&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_open (text, text, boolean)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_open&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_open (text, text, text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_open&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_open (text, text, text, boolean)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_open&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_fetch (text, int)&lt;br /&gt;
RETURNS setof record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_fetch&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_fetch (text, int, boolean)&lt;br /&gt;
RETURNS setof record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_fetch&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_fetch (text, text, int)&lt;br /&gt;
RETURNS setof record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_fetch&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_fetch (text, text, int, boolean)&lt;br /&gt;
RETURNS setof record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_fetch&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_close (text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_close&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_close (text, boolean)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_close&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_close (text, text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_close&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_close (text, text, boolean)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_close&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink (text, text)&lt;br /&gt;
RETURNS setof record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_record&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink (text, text, boolean)&lt;br /&gt;
RETURNS setof record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_record&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink (text)&lt;br /&gt;
RETURNS setof record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_record&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink (text, boolean)&lt;br /&gt;
RETURNS setof record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_record&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_exec (text, text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_exec&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_exec (text, text, boolean)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_exec&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_exec (text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_exec&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_exec (text,boolean)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_exec&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE TYPE dblink_pkey_results AS (position int, colname text);&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_get_pkey (text)&lt;br /&gt;
RETURNS setof dblink_pkey_results&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_get_pkey&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_build_sql_insert (text, int2vector, int, _text, _text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_build_sql_insert&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_build_sql_delete (text, int2vector, int, _text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_build_sql_delete&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_build_sql_update (text, int2vector, int, _text, _text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_build_sql_update&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_current_query ()&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;,&#39;dblink_current_query&#39;&lt;br /&gt;
LANGUAGE C;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_send_query(text, text)&lt;br /&gt;
RETURNS int4&lt;br /&gt;
AS &#39;$libdir/dblink&#39;, &#39;dblink_send_query&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_is_busy(text)&lt;br /&gt;
RETURNS int4&lt;br /&gt;
AS &#39;$libdir/dblink&#39;, &#39;dblink_is_busy&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_get_result(text)&lt;br /&gt;
RETURNS SETOF record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;, &#39;dblink_get_result&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_get_result(text, bool)&lt;br /&gt;
RETURNS SETOF record&lt;br /&gt;
AS &#39;$libdir/dblink&#39;, &#39;dblink_get_result&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_get_connections()&lt;br /&gt;
RETURNS text[]&lt;br /&gt;
AS &#39;$libdir/dblink&#39;, &#39;dblink_get_connections&#39;&lt;br /&gt;
LANGUAGE C;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_cancel_query(text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;, &#39;dblink_cancel_query&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;br /&gt;
CREATE OR REPLACE FUNCTION dblink_error_message(text)&lt;br /&gt;
RETURNS text&lt;br /&gt;
AS &#39;$libdir/dblink&#39;, &#39;dblink_error_message&#39;&lt;br /&gt;
LANGUAGE C STRICT;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/4677369234734000312/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2013/02/funcoes-dblink-postgresql.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/4677369234734000312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/4677369234734000312'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2013/02/funcoes-dblink-postgresql.html' title='Funções DBLINK - PostgreSQL'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-7278241884294639255</id><published>2013-02-12T10:42:00.001-08:00</published><updated>2013-02-12T10:42:27.177-08:00</updated><title type='text'>Agradecimento - 12-02-2013 - 15 mil acesso</title><content type='html'>Olá Pessoal, para todos os visitantes deste blog, eu gostaria de agradecer pois é por causa de cada visita que surgem as motivações para continuar postando conhecimentos aqui na rede.&lt;br /&gt;
&lt;br /&gt;
Eu sou estudante do curso superior de Tecnologia em Banco de Dados pela FATEC Mococa, e tenho muito prazer de poder compartilhar cada um de nossos aprendizados com todos, desde uma simples consulta a uma tabela em um banco de dados centralizado até a grandes consultas avançadas com junção de tabelas em banco de dados diferentes distribuídos por localidades. Aqui é postado conhecimentos que se interligado a outros conhecimentos também aqui postados dão um grande conhecimento de como resolver determinados problemas cotidianos.&lt;br /&gt;
A ideia deste projeto de expor os conhecimentos aqui, é acima de tudo uma iniciativa de contribuir de alguma maneira para o desenvolvimento do aprendizado, acima de tudo o aprendizado.&lt;br /&gt;
Como não tenho tanto para quem dizer sobre banco de dados, pois falar sobre banco de dados é algo que não é tão agradável assim para qualquer um, então eu resolvo postar aqui na internet para que de alguma forma possa ser compreendido, lido, seja importante em algum sentido à alguém.&lt;br /&gt;
&lt;br /&gt;
E é com grande felicidade que agradeço a cada visita a este blog, afinal, não teria sentido nada sem a presença de cada um que passou por aqui.&lt;br /&gt;
&lt;br /&gt;
Tudo tem um fim,&lt;br /&gt;
mas a capacidade de aprender não.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gande abraço!&lt;br /&gt;
Que Deus abençoe a vida de cada um de vocês!&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/7278241884294639255/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2013/02/agradecimento-12-02-2013-15-mil-acesso.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/7278241884294639255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/7278241884294639255'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2013/02/agradecimento-12-02-2013-15-mil-acesso.html' title='Agradecimento - 12-02-2013 - 15 mil acesso'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-3020972888024609998</id><published>2013-02-12T09:57:00.000-08:00</published><updated>2013-02-12T09:57:07.713-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados group by"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="função de agrupamento"/><category scheme="http://www.blogger.com/atom/ns#" term="group by"/><category scheme="http://www.blogger.com/atom/ns#" term="having"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="postgreSQL"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>SQL - Group by and Having - PostgreSQL</title><content type='html'>Olá Pessoal,&lt;br /&gt;
em relatórios complexos sempre utilizaremos a clausula GROUP BY para realizar o agrupamento de informações. Sendo assim, vamos então exemplificar o funcionamento desse grande comando do SQL.&lt;br /&gt;
&lt;br /&gt;
Para nosso exemplo, vamos utilizar as seguintes tabelas&lt;br /&gt;
&lt;br /&gt;
TB_CLIENTE&lt;br /&gt;
id_cliente INTEGER PRIMARY KEY,&lt;br /&gt;
nome VARCHAR NOT NULL,&lt;br /&gt;
cpf VARCHAR(14) NOT NULL UNIQUE&lt;br /&gt;
&lt;br /&gt;
TB_PRODUTOS&lt;br /&gt;
id_produto INTEGER PRIMARY KEY,&lt;br /&gt;
ds_produto VARCHAR NOT NULL,&lt;br /&gt;
preco_produto NUMERIC(10,2)&lt;br /&gt;
&lt;br /&gt;
TB_COMPRAS&lt;br /&gt;
id_compra INTEGER NOT NULL,&lt;br /&gt;
id_cliente INTEGER NOT NULL,&lt;br /&gt;
dt_compra DATE NOT NULL,&lt;br /&gt;
id_produto INTEGER FOREIGN KEY REFERENCES TB_PRODUTOS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
suponha que os seguintes dados estão armazenados&lt;br /&gt;
&lt;br /&gt;
tb_cliente&lt;br /&gt;
1, NOME 1, 333.333.333-33&lt;br /&gt;
2, NOME 2, 444.444.444-44&lt;br /&gt;
3, NOME 3, 555.555.555-55&lt;br /&gt;
&lt;br /&gt;
tb_produtos&lt;br /&gt;
1, PRODUTO 1, 2.00&lt;br /&gt;
2, PRODUTO 2, 3.50&lt;br /&gt;
3, PRODUTO 3, 6.99&lt;br /&gt;
&lt;br /&gt;
tb_compras&lt;br /&gt;
1, 1, 12-02-2013, 1&lt;br /&gt;
2, 2, 12-02-2013, 2&lt;br /&gt;
3, 3, 12-02-2013, 3&lt;br /&gt;
4, 3, 11-02-2013, 3&lt;br /&gt;
5, 2, 11-02-2013, 2&lt;br /&gt;
6, 1, 11-02-2013, 1&lt;br /&gt;
7, 1, 10-02-2013, 2&lt;br /&gt;
8, 2, 17-01-2013, 3&lt;br /&gt;
9, 3, 12-12-2012, 3&lt;br /&gt;
&lt;br /&gt;
Um pouco complexo de se analisar assim, mas, para um bom entendedor não será matéria difícil.&lt;br /&gt;
&lt;br /&gt;
Vamos lá aos exemplos de agrupamento.&lt;br /&gt;
Ex. 1 Suponha que precisemos agrupar a quantidade de compras de cada cliente.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Para a realização deste procedimento, será necessário fazer o agrupamento das vendas por código de cliente, assim, o número de vendas por clientes será contado pela função COUNT&lt;br /&gt;
&lt;br /&gt;
Ex.: SELECT id_cliente, COUNT(id_cliente)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FROM TB_COMPRAS&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GROUP BY id_cliente;&lt;br /&gt;
&lt;br /&gt;
Pronto! Esta seria a solução para o nosso problema inicialmente proposto.&lt;br /&gt;
&lt;br /&gt;
Vamos a um segundo exemplo,&lt;br /&gt;
Ex 2 Suponha que precisemos saber o número de compras de cada cliente por dia&lt;br /&gt;
&lt;br /&gt;
Nesse caso, será necessário fazer o agrupamento das vendas por dia e assim, contar quantas vendas por dia cada cliente fez.&lt;br /&gt;
&lt;br /&gt;
Ex.: SELECT id_cliente, dt_compra, count(id_cliente)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FROM TB_COMPRAS&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; GROUP BY dt_compra, id_cliente;&lt;br /&gt;
&lt;br /&gt;
Pronto! Mais uma resolução de um de nossos problemas.&lt;br /&gt;
&lt;br /&gt;
Acho que com essas utilizações podemos utilizar nosso auto conhecimento para imaginar quais outras oportunidades de utilização.&lt;br /&gt;
&lt;br /&gt;
Vamos neste post, deixar assim como GROUP BY vamos seguir a diante falar um pouco do que é o HAVING.&lt;br /&gt;
&lt;br /&gt;
O HAVING é para o GROUP BY o que o WHERE é para o SELECT, assim para os entendedores, não será necessário falar muito sobre o mesmo.&lt;br /&gt;
&lt;br /&gt;
A utilização do HAVING só poderá ser realizada em conjunto com a função de agrupamento GROUP BY, em nenhuma outra ocasião será utilizado o comando HAVING.&lt;br /&gt;
&lt;br /&gt;
Espero que seja útil.&lt;br /&gt;
Abraço&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/3020972888024609998/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2013/02/sql-group-by-and-having-postgresql.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/3020972888024609998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/3020972888024609998'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2013/02/sql-group-by-and-having-postgresql.html' title='SQL - Group by and Having - PostgreSQL'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-4406992497605842894</id><published>2013-01-05T07:27:00.001-08:00</published><updated>2013-01-05T07:27:53.244-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="function greatest and least"/><category scheme="http://www.blogger.com/atom/ns#" term="GREATEST"/><category scheme="http://www.blogger.com/atom/ns#" term="LEAST"/><category scheme="http://www.blogger.com/atom/ns#" term="maior valor em uma lista"/><category scheme="http://www.blogger.com/atom/ns#" term="menor valor em uma lista"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>GREATEST and LEAST - Oracle 11g</title><content type='html'>Saudações Pessoal,&lt;br /&gt;
vamos falar sobre essas outras duas funções importantes do Oracle que será umamão na roda quando houver a necessidade de verificar o maior e ou o menor valor de uma lista.&lt;br /&gt;
&lt;br /&gt;
A função GREATEST retorna o maior valor em uma lista, mas não confunda com a função MAX,&lt;br /&gt;
ela retornará o maior valor de uma lista especificada na consulta.&lt;br /&gt;
&lt;br /&gt;
Ex.:&lt;br /&gt;
SELECT GREATEST(1, 2, 3, 4, 5, 11, 20)&lt;br /&gt;
FROM DUAL;&lt;br /&gt;
&lt;br /&gt;
Retornará o valor 20 dessa lista.&lt;br /&gt;
&lt;br /&gt;
A função LEAST é contrária a função GREATEST e por tanto, retornará o menor valor de uma lista, mas não confunda com a função MIN.&lt;br /&gt;
&lt;br /&gt;
Ex.:&lt;br /&gt;
&lt;br /&gt;SELECT LEAST(1, 2, 3, 4, 5, 11, 20)&lt;br /&gt;
FROM DUAL;&lt;br /&gt;
&lt;br /&gt;
Retornará o valor 1, pois é o menor na lista especificada.&lt;br /&gt;
Bom pessoal, é isso ai.&lt;br /&gt;
Abraço&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/4406992497605842894/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2013/01/greatest-and-least-oracle-11g.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/4406992497605842894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/4406992497605842894'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2013/01/greatest-and-least-oracle-11g.html' title='GREATEST and LEAST - Oracle 11g'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-3227182487399209991</id><published>2013-01-05T07:18:00.001-08:00</published><updated>2013-01-05T07:18:45.288-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="raiz quadrada oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="SQRT"/><title type='text'>SQRT Oracle 11g </title><content type='html'>Olá Pessoal,&lt;br /&gt;
O SGBD Oracle 11g possui inúmeros metodos com inúmeras utilizações, uma delas é a obtenção da raiz quadrada de um determinado valor usando a função SQRT.&lt;br /&gt;
Para selecionarmos valores e automaticamente obter sua raiz quadrada precisamos somente passar o valor a função SQRT para que o valor seja obtido.&lt;br /&gt;
Exemplo:&lt;br /&gt;
&lt;br /&gt;
Selecionar a raiz quadrada do salario de cada funcionário da empresa.&lt;br /&gt;
&lt;br /&gt;
SELECT SQRT(salario)&lt;br /&gt;
FROM tb_funcionarios&lt;br /&gt;
WHERE fg_ativo = 1;&lt;br /&gt;
&lt;br /&gt;
A utilização dessa função segue da mesma maneira.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/3227182487399209991/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2013/01/sqrt-oracle-11g.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/3227182487399209991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/3227182487399209991'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2013/01/sqrt-oracle-11g.html' title='SQRT Oracle 11g '/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-1502331393925109713</id><published>2013-01-02T19:28:00.001-08:00</published><updated>2013-01-02T19:35:30.770-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download java"/><category scheme="http://www.blogger.com/atom/ns#" term="download netbeans"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="netbeans 7.2.1 completo"/><title type='text'>Download NetBeans 7.2.1 </title><content type='html'>Faça o download da IDE aqui mesmo do blog,&lt;br /&gt;
&amp;nbsp;&lt;a href=&quot;http://netbeans.org/downloads/start.html?platform=windows&amp;amp;lang=pt_BR&amp;amp;option=all&quot;&gt;Clique aqui para fazer o download.&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Descrição do download&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;&quot;&gt;NetBeans 7.2.1 Instalador para Windows/Português (Brasil) (pt_BR)&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;&quot;&gt;netbeans-7.2.1-ml-windows.exe (239.9 MB)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: Arial, Helvetica, Verdana; font-size: 12px; line-height: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
Vamos começar a desenvolver postagens sobre desenvolvimento de software, usando essa ferramenta.&lt;br /&gt;
Até mais</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/1502331393925109713/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2013/01/download-netbeans-721.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/1502331393925109713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/1502331393925109713'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2013/01/download-netbeans-721.html' title='Download NetBeans 7.2.1 '/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-65890779629504355</id><published>2013-01-02T19:19:00.002-08:00</published><updated>2013-01-02T19:19:17.852-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="download postgresql 9.2.2"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="postgresql 9.2.2"/><category scheme="http://www.blogger.com/atom/ns#" term="sgbd"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Download PostgreSQL 9.2.2 - Links</title><content type='html'>&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.enterprisedb.com/postgresql-922-installers-win32?ls=Crossover&amp;amp;type=Crossover&quot;&gt;PostgreSQL 9.2.2 Windows x86-32&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.enterprisedb.com/postgresql-922-installers-win64?ls=Crossover&amp;amp;type=Crossover&quot;&gt;PostgreSQL 9.2.2 Windows x86-64&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.enterprisedb.com/postgresql-922-installers-linux32?ls=Crossover&amp;amp;type=Crossover&quot;&gt;PostgreSQL 9.2.2 Linux x86-32&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.enterprisedb.com/postgresql-922-installers-linux64?ls=Crossover&amp;amp;type=Crossover&quot;&gt;PostgreSQL 9.2.2 Linux x86-64&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/65890779629504355/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2013/01/download-postgresql-922-links.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/65890779629504355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/65890779629504355'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2013/01/download-postgresql-922-links.html' title='Download PostgreSQL 9.2.2 - Links'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-5478076194496200312</id><published>2012-12-27T13:49:00.001-08:00</published><updated>2012-12-27T13:51:01.568-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="chave estrangeira"/><category scheme="http://www.blogger.com/atom/ns#" term="chave primária"/><category scheme="http://www.blogger.com/atom/ns#" term="CONSTRAINT ORACLE"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="restrição orable"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>CONSTRAINTS PRIMARY AND FOREIGN KEY - ORACLE </title><content type='html'>Olá pessoal, vamos falar um pouco sobre contraints no oracle 11g, criando ela na tabela, ou adicionando ela após a tabela criada.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Inicialmente vamos iniciar uma demonstração de como inserir uma constraint foreign key, ou uma restrição de chave estrangeira, na criação da tabela. Vamos ao exemplo:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--Criando uma tabela modelo.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
CREATE TABLE TB_MODELO(&lt;/div&gt;
&lt;div&gt;
id_modelo INTEGER,&lt;/div&gt;
&lt;div&gt;
CONSTRAINT PK_TB_MODELO PRIMARY KEY (id_modelo)&lt;/div&gt;
&lt;div&gt;
);&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--Criando agora uma tabela com a restrição de chave estrangeira.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
CREATE TABLE TB_TESTE(&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
id_teste INTEGER PRIMARY KEY,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
id_modelo INTEGER,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
CONSTRAINT FK_TB_MODELO FOREIGN KEY(id_modelo) REFERENCES TB_MODELO(id_modelo)&lt;/div&gt;
&lt;div&gt;
);&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Observe que eu utilizei a restrição de chave primária na criação da primeira tabela através de uma criação por comando, assim eu posso nomear minha restrição, e consequentemente ter maior controle e conhecimento posterior. Na criação da segunda tabela, a tabela onde eu crio a restrição de chave estrangeira, eu não utilizei a criação de restrição através de um comando explicito, isso faz com que o SGBD escolha qual o nome de restrição deverá ser utilizado na chave primária, ficando assim mais complicado pra encontrar a restrição posteriormente.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Observe também que eu nomeio a restrição de chave estrangeira como FK_TB_MODELO, assim sei que a restrição de chave estrangeira tem esse nome, e posso desativa-la ou mesmo exclui-la através de sua identificação.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Podemos nomear tanto a chave primária quanto a chave estrangeira, pra isso vamos fazer apenas assim:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
CREATE TABLE TB_CHAVES_NOMEADAS(&lt;/div&gt;
&lt;div&gt;
id_chaves INTEGER,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
id_modelo INTEGER,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
id_teste INTEGER,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
CONSTRAINT PK_CHAVES PRIMARY KEY(id_chaves),&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
CONTRAINT FK_MODELO FOREIGN KEY(id_modelo) REFERENCES TB_MODELO(id_modelo),&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
CONTRAINT FK_TESTE FOREIGN KEY(id_teste) REFERENCES TB_TESTE(id_teste)&lt;/div&gt;
&lt;div&gt;
);&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bom, muito bem, agora vamos mostrar como faríamos pra inserir a restrição caso a mesma não tenha sido criada.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
Uma tabela sem restrição primeiramente precisa ser criada pra demonstrações,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
CREATE TABLE TB_SEM_RESTRICOES(&lt;/div&gt;
&lt;div&gt;
id_sem_restricoes INTEGER&lt;/div&gt;
&lt;div&gt;
);&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Nesse caso a tabela não tem chave primária e assim, os registros podem se repetir e causar conflito de informações e&amp;nbsp;inconsistência&amp;nbsp;de dados. Então, vamos adicionar a restrição de chave primária, o que fará com que os registros sejam exclusivos.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
ALTER TABLE TB_SEM_RESTRICOES&lt;/div&gt;
&lt;div&gt;
ADD CONTRAINT PK_TB_SEM_RESTRICOES PRIMARY KEY(id_sem_restricoes);&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bom, é isso ai, assim podemos ter uma base de como trabalhar com restrições de chave primária e estrangeira no oracle.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bom, como adicionamos uma restrição a tabela que chama-se TB_SEM_RESTRICOES alguma coisa ta errada não é? rs, alteramos o nome da tabela e também da restrição pra fechar o post.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
RENAME TABLE TB_SEM_RESTRICOES TO TB_COM_RESTRICAO;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
ALTER TABLE TB_COM_RESTRICAO RENAME CONSTRAINT PK_TB_SEM_RESTRICOES TO PK_TB_COM_RESTRICOES;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Enfim, terminamos nosso post.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Abraço (:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/5478076194496200312/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/12/constraints-primary-and-foreign-key.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5478076194496200312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5478076194496200312'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/12/constraints-primary-and-foreign-key.html' title='CONSTRAINTS PRIMARY AND FOREIGN KEY - ORACLE '/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-1505261026749449097</id><published>2012-11-28T19:32:00.000-08:00</published><updated>2012-11-28T19:32:22.245-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados orientado a objetos"/><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados orientado a objetos no postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="database object-oriented"/><category scheme="http://www.blogger.com/atom/ns#" term="database object-oriented on postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="DDL"/><category scheme="http://www.blogger.com/atom/ns#" term="DML"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Banco de Dados Orientado a Objetos - PostgreSQL</title><content type='html'>Bom pessoal, vamos falar um pouco sobre banco de dados orientado a objetos e fazer algumas demonstrações de utilizações nesta postagem.&lt;br /&gt;
&lt;br /&gt;
Um banco de dados Orientado a Objetos é um banco de dados onde os dados são armazenados em forma de objetos, estruturas de dados compostas que podem ser definidas da maneira que se adeque as necessidades. Podemos criar objetos compostos por vários atributos e armazena-los como um tipo de objeto.&lt;br /&gt;
&lt;br /&gt;
Para entendermos um pouco melhor e na prática, vamos criar um banco de dados para desenvolver nosso entendimento.&lt;br /&gt;
&lt;br /&gt;
Cria um banco de dados chamado BDOO.&lt;br /&gt;
&lt;br /&gt;
CREATE DATABASE &quot;BDOO&quot;&lt;br /&gt;
CONNECTION LIMIT 1&lt;br /&gt;
ENCODING &#39;LATIN1&#39;&lt;br /&gt;
TEMPLATE = TEMPLATE0;&lt;br /&gt;
&lt;br /&gt;
Vamos criar uma tabela teste que irá servir para testar os comandos, mas antes disso, vamos começar a criar os objetos tão falados de banco de dados orientados a objetos.&lt;br /&gt;
&lt;br /&gt;
Cria um objeto que armazena o primeiro nome e o sobrenome, e será nomeado de NOME.&lt;br /&gt;
&lt;br /&gt;
CREATE TYPE NOME AS (&lt;br /&gt;
primeiro_nome VARCHAR(20),&lt;br /&gt;
sobrenome VARCHAR(20)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
Vamos criar um tipo de objeto chamado de ENDERECO, com os campos de um endereço.&lt;br /&gt;
&lt;br /&gt;
CREATE TYPE ENDERECO AS (&lt;br /&gt;
rua VARCHAR(40),&lt;br /&gt;
numero INTEGER,&lt;br /&gt;
bairro VARCHAR(40),&lt;br /&gt;
cep VARCHAR(10),&lt;br /&gt;
cidade VARCHAR(40),&lt;br /&gt;
estado CHAR(2),&lt;br /&gt;
pais VARCHAR(40)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
Vamos agora criar um tipo de objeto chamado de TELEFONE.&lt;br /&gt;
&lt;br /&gt;
CREATE TYPE TELEFONE AS (&lt;br /&gt;
ddi CHAR(3),&lt;br /&gt;
ddd CHAR(3),&lt;br /&gt;
telefone VARCHAR(20)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
Vamos então criar um tipo de objeto CLIENTE que contém os tipos criados a cima.&lt;br /&gt;
&lt;br /&gt;
CREATE TYPE CLIENTE AS (&lt;br /&gt;
nm_cliente NOME,&lt;br /&gt;
end ENDERECO,&lt;br /&gt;
tel TELEFONE&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
Bom, muito bem, todos os tipos de objetos necessário para estudarmos os comandos dessa postagem estão criados, agora vamos criar uma tabela e começar a aprender um pouco sobre manipulação de dados em um banco de dados orientado a objeto.&lt;br /&gt;
&lt;br /&gt;
Cria uma tabela chamada de TB_CLIENTE com o tipo de objeto cliente que contém todos os tipos que criamos e um campo chamado de fg_ativo que controlará se o cliente está ativo.&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE TB_CLIENTE(&lt;br /&gt;
client CLIENTE,&lt;br /&gt;
fg_ativo INTEGER&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora, vamos entender que a nossa tabela TB_CLIENTE contém um objeto do tipo cliente, que contém os tipos NOME, ENDERECO e TELEFONE, então vamos começar a inserir um dado para entendermos de que maneira a criação dos tipos de objetos contribuem na estruturação de uma tabela.&lt;br /&gt;
&lt;br /&gt;
Insere um registro na tabela TB_CLIENTE.&lt;br /&gt;
&lt;br /&gt;
INSERT INTO TB_CLIENTE (&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.nome.primeiro_nome,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.nome.sobrenome,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.endereco.rua,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.endereco.numero,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.endereco.bairro,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.endereco.cep,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.endereco.cidade,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.endereco.estado,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.endereco.pais,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.telefone.ddi,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.telefone.ddd,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cliente.telefone.telefone,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fg_ativo) VALUES&lt;br /&gt;
(&#39;Nome&#39;,&lt;br /&gt;
&amp;nbsp;&#39;Sobrenome&#39;,&lt;br /&gt;
&amp;nbsp;&#39;Minha Rua&#39;,&lt;br /&gt;
100,&lt;br /&gt;
&#39;Meu Bairro&#39;,&lt;br /&gt;
&#39;13700-000&#39;,&lt;br /&gt;
&#39;Minha cidade&#39;,&lt;br /&gt;
&amp;nbsp;&#39;SP&#39;, &#39;Brasil&#39;,&lt;br /&gt;
&amp;nbsp;&#39;55&#39;,&lt;br /&gt;
&amp;nbsp;&#39;19&#39;,&lt;br /&gt;
&amp;nbsp;&#39;0000-0000&#39;,&lt;br /&gt;
1);&lt;br /&gt;
&lt;br /&gt;
Pronto, inserimos nosso primeiro registro na tabela, vamos começar a fazer consultas agora em um banco de dados orientado a objeto.&lt;br /&gt;
&lt;br /&gt;
Consultar somente o nome e sobrenome dos clientes.&lt;br /&gt;
&lt;br /&gt;
SELECT (TB_CLIENTE).client.nome.primeiro_nome,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(TB_CLIENTE).client.nome.sobrenome&lt;br /&gt;
FROM TB_CLIENTE&lt;br /&gt;
WHERE fg_ativo = 1;&lt;br /&gt;
&lt;br /&gt;
Ok, agora vamos consultar o nome e a cidade de um cliente.&lt;br /&gt;
&lt;br /&gt;
SELECT (TB_CLIENTE).client.nome.primeiro_nome,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(TB_CLIENTE).client.endereco.cidade&lt;br /&gt;
FROM TB_CLIENTE&lt;br /&gt;
WHERE fg_ativo = 1;&lt;br /&gt;
&lt;br /&gt;
Vamos agora recuperar os dados dos clientes por completo para finalizar essa postagem.&lt;br /&gt;
&lt;br /&gt;
SELECT (TB_CLIENTE).client.nome.*,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(TB_CLIENTE).client.endereco.*,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(TB_CLIENTE).client.telefone.*&lt;br /&gt;
FROM TB_CLIENTE&lt;br /&gt;
WHERE fg_ativo = 1;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Poderiamos escrever todos os campos e recuperar os mesmos dados do comando acima, por tanto, espero que tenha sido útil essa postagem pra demonstrar como utilizar banco de dados orientado a objeto e como manipular dados nesses tipos de banco de dados.&lt;br /&gt;
&lt;br /&gt;
Qualquer dúvida sinta-se a vontade para postar seu comentário.&lt;br /&gt;
Abraço.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/1505261026749449097/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/11/banco-de-dados-orientado-objetos.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/1505261026749449097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/1505261026749449097'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/11/banco-de-dados-orientado-objetos.html' title='Banco de Dados Orientado a Objetos - PostgreSQL'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-4366394195778671656</id><published>2012-09-30T10:39:00.001-07:00</published><updated>2012-09-30T10:39:41.456-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="função de caractere oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="nvl oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="NVL2 Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Função NVL2 Oracle 11g</title><content type='html'>Olá,&amp;nbsp;a função:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;b&gt;NVL2&lt;/b&gt;(&lt;b&gt;x&lt;/b&gt;, &lt;b&gt;&#39;valor não nulo&#39;&lt;/b&gt;,&lt;b&gt; &#39;valor_nulo&#39;&lt;/b&gt;)&lt;br /&gt;
&lt;br /&gt;
serve para retornar strings de substituição para valores nulos e não nulos.&lt;br /&gt;
&lt;br /&gt;
Um exemplo de &lt;b&gt;NVL2 &lt;/b&gt;seria, verificar uma lista de telefones dos clientes, alguns clientes não possuem telefone celular por tanto será trocado por uma mensagem.&lt;br /&gt;
&lt;br /&gt;
Exemplo&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SELECT NVL2&lt;/b&gt;(nro_celular, &#39;Têm celular&#39;, &#39;Não&amp;nbsp;Têm celular&#39;)&lt;br /&gt;
&lt;b&gt;FROM &lt;/b&gt;clientes;&lt;br /&gt;
&lt;br /&gt;
Espero que entendam a utilização dessa função com esse simples exemplo.&lt;br /&gt;
Abraço!</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/4366394195778671656/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-nvl2-oracle-11g.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/4366394195778671656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/4366394195778671656'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-nvl2-oracle-11g.html' title='Função NVL2 Oracle 11g'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-5548702931448339410</id><published>2012-09-30T10:31:00.002-07:00</published><updated>2012-09-30T10:41:01.664-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="define"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><category scheme="http://www.blogger.com/atom/ns#" term="undefine"/><category scheme="http://www.blogger.com/atom/ns#" term="variáveis de substituição"/><category scheme="http://www.blogger.com/atom/ns#" term="variáveis na condição oracle"/><title type='text'>Variáveis Oracle - ACCEPT, &amp;, DEFINE E UNDEFINE</title><content type='html'>&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;Utilizando variáveis numa Query Oracle&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;b&gt;SELECT &amp;amp;&lt;/b&gt;VAR_1, &lt;b&gt;&amp;amp;&lt;/b&gt;VAR2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;b&gt;FROM &amp;amp;&lt;/b&gt;TABELA&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;b&gt;WHERE &amp;amp;&lt;/b&gt;CONDICAO;&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;O &lt;b&gt;&amp;amp; &lt;/b&gt;força a inserção de valores para os campos que o contém,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;a utilização de variáveis pode ser permanente, para isso o comando de declaração de variaveis permanente seria&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;b&gt;DEFINE &lt;/b&gt;v_minha_variavel = 1;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;text_exposed_show&quot; style=&quot;background-color: white; color: #333333; display: inline; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;
&lt;br /&gt;
ai na query ficaria&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;select &lt;/b&gt;*&lt;br /&gt;
&lt;b&gt;from &lt;/b&gt;clientes&lt;br /&gt;
&lt;b&gt;where &lt;/b&gt;id_cliente = v_minha_variavel;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UNDIFINE &lt;/b&gt;v_minha_variavel;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;text_exposed_show&quot; style=&quot;background-color: white; color: #333333; display: inline; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;
&lt;br /&gt;
Podemos utilizar uma mensagem na obtenção dos valores, para isso o comando seria&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ACCEPT &lt;/b&gt;v_nome_variavel &lt;b&gt;NUMBER FORMAT &lt;/b&gt;99 &lt;b&gt;PROMPT &lt;/b&gt;&#39;Digite o ID do cliente:&#39;;&lt;br /&gt;
&lt;br /&gt;
E então a consulta ficaria assim&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;select &lt;/b&gt;*&lt;br /&gt;
&lt;b&gt;from &lt;/b&gt;clientes&lt;br /&gt;
&lt;b&gt;where &lt;/b&gt;id_cliente = v_nome_variavel;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/5548702931448339410/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/variaveis-oracle-accept-define-e.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5548702931448339410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5548702931448339410'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/variaveis-oracle-accept-define-e.html' title='Variáveis Oracle - ACCEPT, &amp;, DEFINE E UNDEFINE'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-1389704320070179033</id><published>2012-09-30T10:28:00.002-07:00</published><updated>2012-09-30T10:28:24.138-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="função de caractere oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="REPLACE ORACLE"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Função REPLACE Oracle - SQL</title><content type='html'>&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;Função REPLACE(x, variável_de_busca, variável_de_substituicao)&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;Função replace é muito utilizada para gerar relatórios, a função replace não altera os valores reais na tabela, somente altera os valores na consulta.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;Um exemplo, procurar o sobrenome Thomaz e substituir por &quot;é da família&#39;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;SELECT REPLACE(sobrenome_cliente, &#39;Thomaz&#39;, &#39;é da família&#39;)&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;FROM clientes;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;é isso ai&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &#39;lucida grande&#39;, tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/1389704320070179033/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-replace-oracle-sql.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/1389704320070179033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/1389704320070179033'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-replace-oracle-sql.html' title='Função REPLACE Oracle - SQL'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-5302497813485529861</id><published>2012-09-25T15:28:00.001-07:00</published><updated>2012-09-25T15:28:46.587-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="databases"/><category scheme="http://www.blogger.com/atom/ns#" term="equijoin"/><category scheme="http://www.blogger.com/atom/ns#" term="inner join"/><category scheme="http://www.blogger.com/atom/ns#" term="join"/><category scheme="http://www.blogger.com/atom/ns#" term="junção de tabelas"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL 86"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL 92"/><title type='text'>EQUIJOIN Oracle 11g - SQL 86 - 92 (WHERE and JOIN)</title><content type='html'>Olá Pessoal, vamos falar um pouco sobre junções de igualdade &lt;b&gt;EQUIJOINS &lt;/b&gt;utilizando o Oracle 11g.&lt;br /&gt;
As junções de igualdade ou como comumente conhecidas &lt;b&gt;EQUIJOINS &lt;/b&gt;são utilizadas para unir tuplas com igualdade em alguma das colunas.&lt;br /&gt;
&lt;br /&gt;
Vamos verificar o código de junção de igualdade&lt;b&gt; SQL 86&lt;/b&gt; utilizando &lt;b&gt;WHERE&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SELECT &amp;nbsp;&lt;/b&gt;c.id_cliente, c.nome, co.data_compra&lt;br /&gt;
&lt;b&gt;FROM &lt;/b&gt;clientes c, compras co&lt;br /&gt;
&lt;b&gt;WHERE &lt;/b&gt;c.id_cliente = co.id_cliente;&lt;br /&gt;
&lt;br /&gt;
A mesma consulta pode ser escrita utilizando &lt;b&gt;SQL 92&lt;/b&gt; e o comando &lt;b&gt;INNER&lt;/b&gt; &lt;b&gt;JOIN ON&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SELECT &amp;nbsp;&lt;/b&gt;c.id_cliente, c.nome, co.data_compra&lt;br /&gt;
&lt;b&gt;FROM &lt;/b&gt;clientes c&lt;br /&gt;
&lt;b&gt;INNER JOIN &lt;/b&gt;compras co &lt;b&gt;ON &lt;/b&gt;(c.id_cliente = co.id_cliente);&lt;br /&gt;
&lt;br /&gt;
A mesma consulta poderia ser escritas utilizando outros tipos de junção mas não é o foco desta postagem.&lt;br /&gt;
Abraço!&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/5302497813485529861/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/equijoin-oracle-11g-sql-86-92-where-and.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5302497813485529861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5302497813485529861'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/equijoin-oracle-11g-sql-86-92-where-and.html' title='EQUIJOIN Oracle 11g - SQL 86 - 92 (WHERE and JOIN)'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-485461843082007186</id><published>2012-09-24T17:43:00.000-07:00</published><updated>2012-09-24T17:43:51.126-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="MONTHS_BETWEEN"/><category scheme="http://www.blogger.com/atom/ns#" term="Operadores Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="quantidade de meses entre dois campos"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Operador MONTHS_BETWEEN - Oracle 11g - SQL</title><content type='html'>&lt;br /&gt;
Olá Pessoal,&amp;nbsp;&lt;div&gt;
vamos conhecer um pouco sobre algumas funções dessa poderosa ferramenta de gerenciamento de banco de dados o &lt;b&gt;Oracle &lt;/b&gt;11g.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Vamos a um exemplo simples, a função &lt;b&gt;MONTHS_BETWEEN &lt;/b&gt;como o próprio nome traduzido ao português diz, é utilizada para verificar os meses entre uma determinada data e outra.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A função &lt;b&gt;MONTHS_BETWEEN&lt;/b&gt;(x, y) também recebe dois parâmetros, data x e data y, a função verifica a quantidade de meses existentes entre as duas datas.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Exemplo:&lt;/div&gt;
&lt;div&gt;
Verificar a quantidade de meses de cadastro de um determinado cliente.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Para isso vamos utilizar a data atual e a data de cadastro do cliente.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Vamos a consulta:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;SELECT MONTHS_BETWEEN&lt;/b&gt;(&lt;b&gt;CURRENT_DATE&lt;/b&gt;, data_cadastro) &lt;b&gt;as &lt;/b&gt;&quot;Meses de cadastro&quot;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;FROM &lt;/b&gt;clientes;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A função irá retornar a quantidade de meses entre as duas datas e assim, demonstrará a quantidade de meses de cadastro de cada cliente na tabela.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Após a função &lt;b&gt;MONTHS_BETWEEN &lt;/b&gt;foi utilizado um AS que serve pra apelidar o campo de consulta para Meses de cadastro.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bom galera, é isso ai.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Abraços!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/485461843082007186/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/operador-monthsbetween-oracle-11g-sql.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/485461843082007186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/485461843082007186'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/operador-monthsbetween-oracle-11g-sql.html' title='Operador MONTHS_BETWEEN - Oracle 11g - SQL'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-3702771678400977255</id><published>2012-09-24T17:32:00.001-07:00</published><updated>2012-09-24T17:32:21.981-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="11g"/><category scheme="http://www.blogger.com/atom/ns#" term="12c"/><category scheme="http://www.blogger.com/atom/ns#" term="9i"/><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="função nvl"/><category scheme="http://www.blogger.com/atom/ns#" term="função que substitui campo nulo"/><category scheme="http://www.blogger.com/atom/ns#" term="NVL"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Função NVL Oracle 11g - SQL</title><content type='html'>Olá galera,&lt;br /&gt;
este blog tem o objetivo de expor alguns métodos específicos de determinados SGBD, nesse post, vamos falar um pouco sobre a função&lt;b&gt; NVL&lt;/b&gt; do &lt;b&gt;Oracle&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
A função &lt;b&gt;NVL&lt;/b&gt; é utilizada quando queremos imprimir uma mensagem em determinadas linhas em que o campo especificado for nulo.&lt;br /&gt;
No exemplo a seguir, vamos exemplificar a função &lt;b&gt;NVL&lt;/b&gt; para aqueles telefones que forem nulos,&lt;br /&gt;
os campos ao invés de ficarem em branco, serão demonstrados com a seguinte mensagem: &quot;Telefone Nulo&quot;.&lt;br /&gt;
&lt;br /&gt;
Vamos ao exemplo, a sintaxe desse comando é tranquilamente simples, a função NVL recebe dois parâmetros, &lt;b&gt;NVL(x, y)&lt;/b&gt; o x no caso, é o campo que verificaremos valores nulos, o campo y será o valor que será atribuído caso o campo especificado em x seja realmente nulo.&lt;br /&gt;
&lt;br /&gt;
No nosso exemplo a consulta ficaria da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SELECT &lt;/b&gt;NVL(telefone, &quot;Telefone Nulo&quot;)&lt;br /&gt;
&lt;b&gt;FROM &lt;/b&gt;clientes;&lt;br /&gt;
&lt;br /&gt;
Bom galera, o exemplo da função pode ser aplicado a qualquer tipo de consulta que envolva valores nulos.&lt;br /&gt;
Espero ter ajudado.&lt;br /&gt;
&lt;br /&gt;
Abraço!</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/3702771678400977255/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-nvl-oracle-11g-sql.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/3702771678400977255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/3702771678400977255'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-nvl-oracle-11g-sql.html' title='Função NVL Oracle 11g - SQL'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-2863695177772604858</id><published>2012-09-18T15:56:00.004-07:00</published><updated>2012-09-18T15:56:48.904-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="function postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="function setof"/><category scheme="http://www.blogger.com/atom/ns#" term="retorno de multiplos valores."/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Função que retorna múltiplos valores - PostgreSQL - PLPGSQL </title><content type='html'>Saudações Pessoal,&lt;br /&gt;
&lt;br /&gt;
Vamos falar um pouco mais sobre funções utilizando a linguagem de programação de banco de dados &lt;b&gt;PLPGSQL &lt;/b&gt;do PostgreSQL.&lt;br /&gt;
Vamos dar um exemplo de uma função que retorna TODOS valores de uma tabela clientes.&lt;br /&gt;
O comando &lt;b&gt;SETOF &lt;/b&gt;nome_tabela serve para especificar o tipo de retorno da função, no caso esse exemplo&amp;nbsp;abaixo&amp;nbsp;serve para listar tipos de objetos clientes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;CREATE OR REPLACE FUNCTION&lt;/b&gt; FN_CLIENTES(CODCLIENTE INTEGER) &lt;b&gt;RETURNS SETOF &lt;/b&gt;CLIENTES &lt;b&gt;AS&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;$$&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;BEGIN&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;RETURN &lt;/b&gt;QUERY &lt;b&gt;SELECT &lt;/b&gt;* &lt;b&gt;FROM &lt;/b&gt;CLIENTES;&lt;br /&gt;
&lt;b&gt;END&lt;/b&gt;;&lt;br /&gt;
&lt;b&gt;$$&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;LANGUAGE &lt;/b&gt;PLPGSQL;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desas maneira, poderão ser retornados todos os campos de uma determinada tabela.&lt;br /&gt;
Para dropar uma função, o comando é DROP FUNCTION nome_função(tipo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/2863695177772604858/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-que-retorna-multiplos-valores.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/2863695177772604858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/2863695177772604858'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-que-retorna-multiplos-valores.html' title='Função que retorna múltiplos valores - PostgreSQL - PLPGSQL '/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-7266995522643324380</id><published>2012-09-18T06:47:00.002-07:00</published><updated>2012-09-18T06:47:53.259-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PgAdmin 3"/><category scheme="http://www.blogger.com/atom/ns#" term="postgreSQL"/><title type='text'>Erro, serviço não está escutando. - PostgreSQL 9.0</title><content type='html'>Simplesmente podemo corrigir esse problema na versão 9.0 com um simples clique com o botão esquerdo em cima do servidor no&lt;b&gt; PgAdmin 3&lt;/b&gt; e START SERVICE.&lt;br /&gt;
Ou se necessário for, pode STOP SERVICE, caso queria.&lt;br /&gt;
&lt;br /&gt;
Simples assim.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/7266995522643324380/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/erro-servico-nao-esta-escutando.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/7266995522643324380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/7266995522643324380'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/erro-servico-nao-esta-escutando.html' title='Erro, serviço não está escutando. - PostgreSQL 9.0'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-2403681914430835029</id><published>2012-09-18T06:40:00.002-07:00</published><updated>2012-09-18T06:40:48.208-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="access database dblink"/><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink_connect"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink_disconnect"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink_exec"/><category scheme="http://www.blogger.com/atom/ns#" term="DCL"/><category scheme="http://www.blogger.com/atom/ns#" term="DDL"/><category scheme="http://www.blogger.com/atom/ns#" term="DML"/><category scheme="http://www.blogger.com/atom/ns#" term="postgreSQL"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>DKLINK CONNECT, DBLINK DISCONNECT E DBLINK EXEC - PostgreSQL </title><content type='html'>Saudações Pessoal,&lt;br /&gt;
Aprendemos um pouco sobre dblink em alguns posts anteriores e nesse, iremos aprender a executar comandos &lt;b&gt;dcl&lt;/b&gt;,&amp;nbsp;&lt;b&gt;dml&lt;/b&gt;, e &lt;b&gt;ddl &lt;/b&gt;através das funções &lt;b&gt;DBLINK_EXEC&lt;/b&gt;().&lt;br /&gt;
&lt;br /&gt;
Vamos entender pra que serve, a função &lt;b&gt;dblink_exe&lt;/b&gt;() é responsável por efetuar comandos na base de dados remota, comandos que surjam algum efeito permanente.&lt;br /&gt;
&lt;br /&gt;
Vamos exemplificar&lt;br /&gt;
* Inserir registros em uma tabela de um banco de dados remoto.&lt;br /&gt;
&lt;br /&gt;
Sintaxe básica&lt;br /&gt;
&lt;b&gt;SELECT dblink_exec&lt;/b&gt;(&lt;span style=&quot;color: #b45f06;&quot;&gt;&#39;nome_da_conexao&#39;&lt;/span&gt;, &lt;span style=&quot;color: #b45f06;&quot;&gt;&#39;comando_sql&#39;&lt;/span&gt;);&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;--Criando uma conexão&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;dblink_connect&lt;/b&gt;(&lt;span style=&quot;color: #b45f06;&quot;&gt;&#39;Conexao_SP&#39;,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b45f06;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;hostaddr = 127.0.0.1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b45f06;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; port = 5432&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b45f06;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; user = postgres&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b45f06;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; password = senha&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b45f06;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dbname = BANCO_SP&#39;&lt;/span&gt;);&lt;br /&gt;
&lt;br /&gt;
Uma vez criada a conexão, deverá fecha-la se necessitar&amp;nbsp;restabelece-la.&lt;br /&gt;
O comando que finaliza uma conexão é o&lt;b&gt; dblink_disconnect&lt;/b&gt;(&#39;nome_da_conexão&#39;);&lt;br /&gt;
&lt;u&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;--Comando Insert Into&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;
&lt;b&gt;SELECT dblink_exec&lt;/b&gt;(&lt;span style=&quot;color: #b45f06;&quot;&gt;&#39;Conexao-SP&#39;&lt;/span&gt;, &lt;span style=&quot;color: #b45f06;&quot;&gt;&#39;INSERT INTO clientes (codcliente, nome, datacadastro) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;VALUES&lt;/b&gt; (1, &#39;&#39;Marcelo&#39;&#39;,&#39;&#39;18-09-2012&#39;&#39;);&lt;/span&gt;&#39;);
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/2403681914430835029/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/dklink-connect-dblink-disconnect-e.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/2403681914430835029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/2403681914430835029'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/dklink-connect-dblink-disconnect-e.html' title='DKLINK CONNECT, DBLINK DISCONNECT E DBLINK EXEC - PostgreSQL '/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-6062959424643959038</id><published>2012-09-17T17:02:00.000-07:00</published><updated>2012-09-17T17:02:57.852-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="comandos básicos."/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="LOWER Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><category scheme="http://www.blogger.com/atom/ns#" term="UPPER Oracle"/><title type='text'>Função UPPER and LOWER - Oracle </title><content type='html'>Olá galera, pra quem quer saber pra que ser e como funciona, a função UPPER serve para tornar maiúscula toda a string que lhe for passada como parametro Ex: UPPER(nome)&lt;br /&gt;
A função LOWER funciona de maneira idêntica a função UPPER, porém torna minúsculas as palavras. Ex: LOWER(nome)&lt;br /&gt;
&lt;br /&gt;
Exemplificando na prática:&lt;br /&gt;
&lt;br /&gt;
SELECT LOWER(nome)&lt;br /&gt;
FROM clientes;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT UPPER(nome)&lt;br /&gt;
FROM clientes;&lt;br /&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/6062959424643959038/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-upper-and-lower-oracle.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/6062959424643959038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/6062959424643959038'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/funcao-upper-and-lower-oracle.html' title='Função UPPER and LOWER - Oracle '/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-1594843326418427563</id><published>2012-09-17T16:57:00.003-07:00</published><updated>2012-09-18T06:42:46.682-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="DML"/><category scheme="http://www.blogger.com/atom/ns#" term="função in oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="in"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Operador IN - SQL - Oracle - PostgreSQL</title><content type='html'>O Operador IN no oracle assim como em vários outros SGBDs, como PostgreSQL, SQL SERVER entre outros,funciona da seguinte maneira:&lt;br /&gt;
&lt;br /&gt;
Os campos que estiverem dentro da condição IN serão retornados na consulta, o operador IN serve como um tipo de vetor de verificação, todos os valores dentro de IN serão verificados na clausula SQL.&lt;br /&gt;
&lt;br /&gt;
Exemplo:&lt;br /&gt;
Verificar todos os alunos cuja a média deles sejam 10, 9 e 8.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SELECT &lt;/b&gt;nome&lt;br /&gt;
&lt;b&gt;FROM &lt;/b&gt;alunos&lt;br /&gt;
&lt;b&gt;WHERE &lt;/b&gt;media &lt;b&gt;IN &lt;/b&gt;(10, 9, 8);&lt;br /&gt;
&lt;br /&gt;
Este comando serve também para verificar Strings:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SELECT &lt;/b&gt;*&lt;br /&gt;
&lt;b&gt;FROM &lt;/b&gt;clientes&lt;br /&gt;
&lt;b&gt;WHERE &lt;/b&gt;estado &lt;b&gt;IN &lt;/b&gt;(&lt;span style=&quot;color: #b45f06;&quot;&gt;&#39;RJ&#39;, &#39;SP&#39;&lt;/span&gt;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/1594843326418427563/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/operador-in-sql-oracle-postgresql.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/1594843326418427563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/1594843326418427563'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/operador-in-sql-oracle-postgresql.html' title='Operador IN - SQL - Oracle - PostgreSQL'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-5669768450154547116</id><published>2012-09-17T16:48:00.001-07:00</published><updated>2012-09-17T16:48:30.750-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="access database dblink"/><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados remoto"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink"/><category scheme="http://www.blogger.com/atom/ns#" term="dblink_connect"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="selecionando dados em banco de dados remoto"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>DBLINK Função de Seleção - PostgreSQL</title><content type='html'>Olá Pessoal,&lt;br /&gt;
inicialmente eu apresentei a função de conexão com outro banco de dados, agora, vamos aprender a função de seleção em um banco de dados remoto.&lt;br /&gt;
&lt;br /&gt;
A função DBLINK serve para consultar dados em banco de dados remoto, a sua utilização é simples, basta ter uma conexão estabelecida, e especificar o comando de seleção que deseja, seguido por uma tabela virtual que será responsável por receber os dados resultantes da consulta.&lt;br /&gt;
&lt;br /&gt;
Exemplo:&lt;br /&gt;
Vamos fazer uma consulta em uma tabela clientes, que está em um banco de dados remoto.&lt;br /&gt;
&lt;br /&gt;
Inicialmente, estabelecemos a conexão:&lt;br /&gt;
&lt;br /&gt;
SELECT DBLINK_CONNECT(&#39;conexao&#39;,&lt;br /&gt;
&#39;hostaddr = 127.0.0.1 port = 5432 user = postgres password = senha dbname = BANCO_REMOTO);&lt;br /&gt;
&lt;br /&gt;
Após a conexão estabelecida, podemos então consultar nossa tabela com o comando DBLINK.&lt;br /&gt;
Suponha que a tabela clientes tenha os campos(codcliente, nome, cidade, estado).&lt;br /&gt;
Para realizar a consulta,&amp;nbsp;teríamos&amp;nbsp;a seguinte sintaxe:&lt;br /&gt;
&lt;br /&gt;
SELECT DBLINK(&#39;conexao&#39;, &#39;SELECT * FROM CLIENTES&#39;) TB_VIRTUAL(codcliente integer,&lt;br /&gt;
nome varchar(50), cidade varchar(50), estado char(2));&lt;br /&gt;
&lt;br /&gt;
Obs.: O número de campos da tabela virtual deve ser precisamente o mesmo número de campos que será retornado da consulta.&lt;br /&gt;
&lt;br /&gt;
Bom galera é isso ai, Abraço!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/5669768450154547116/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/dblink-funcao-de-selecao-postgresql.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5669768450154547116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5669768450154547116'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/dblink-funcao-de-selecao-postgresql.html' title='DBLINK Função de Seleção - PostgreSQL'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-3180107676784557409</id><published>2012-09-12T22:27:00.001-07:00</published><updated>2012-09-13T06:42:51.190-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="count"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="function"/><category scheme="http://www.blogger.com/atom/ns#" term="insert com select"/><category scheme="http://www.blogger.com/atom/ns#" term="loop"/><category scheme="http://www.blogger.com/atom/ns#" term="plpgsql"/><category scheme="http://www.blogger.com/atom/ns#" term="postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="SELECT"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><title type='text'>Função PL/pgSQL - PostgreSQL - Function</title><content type='html'>Vamos dar exemplos de como utilizar funções no PostgreSQL.&lt;br /&gt;
Primeiro, uma função é demonstrada para que possamos entender algumas funcionalidades.&lt;br /&gt;
&lt;br /&gt;
Os comandos &lt;b&gt;SQL&lt;/b&gt; estão em negrito,&amp;nbsp;em verde, os &lt;span style=&quot;color: #38761d;&quot;&gt;comentários&lt;/span&gt;, os demais são objetos e operadores.&lt;br /&gt;
&lt;br /&gt;
Tabela Clientes&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAEO6uwCwuWTVvW0Sefnj_6Yiyg0OF_Mqd4BeG7TJPXhtsaU84PHj5V1EhOUFpnWIQzGLjM_eVkP89pduDfMfJNDf0UDe7x3rC-8PFd3gFQ6v-iwo9wFXgeJHjo-W6IAGBlqHzP1tHlGZI/s1600/Sem+t%C3%ADtulo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;108&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAEO6uwCwuWTVvW0Sefnj_6Yiyg0OF_Mqd4BeG7TJPXhtsaU84PHj5V1EhOUFpnWIQzGLjM_eVkP89pduDfMfJNDf0UDe7x3rC-8PFd3gFQ6v-iwo9wFXgeJHjo-W6IAGBlqHzP1tHlGZI/s640/Sem+t%C3%ADtulo.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;--Esta função faz a replicação dos campos de uma tabela cliente para outra tabela bkpcliente&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;create or replace function&lt;/b&gt;&amp;nbsp;fn_replica&amp;nbsp;&lt;b&gt;returns&lt;/b&gt; void&amp;nbsp;&lt;b&gt;as&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;$$&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/*inicia o bloco da função*/&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;declare&lt;span style=&quot;color: #38761d;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/*contém as declarações da função*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
contador &lt;b&gt;integer&lt;/b&gt;;&lt;span style=&quot;color: #38761d;&quot;&gt;/*é utilizado para incrementar de 1 ao número de clientes*/&lt;/span&gt;&lt;br /&gt;
client &lt;b&gt;integer&lt;/b&gt;;&lt;span style=&quot;color: #38761d;&quot;&gt;/*utilizada para carregar a quantidade de clientes que o loop deverá percorrer*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;b&gt;begin &lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/*inicia o procedimento*/&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;select count(*)&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/* seleciona o quantidade total de clientes no caso */&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;into&lt;/b&gt; client&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;from&lt;/b&gt; clientes;&lt;br /&gt;
&lt;br /&gt;
contador = &lt;span style=&quot;color: #38761d;&quot;&gt;1&lt;/span&gt;;/&lt;span style=&quot;color: #38761d;&quot;&gt;*inicia o contador em 1*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;b&gt;loop&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;/&lt;/b&gt;*inicia o laço de repetição*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp;&lt;b&gt;insert into&lt;/b&gt; bkpclientes&lt;b&gt;(&lt;/b&gt;codcliente, nome, endereco,bairro, cep,&amp;nbsp;cidade,estado, datacadastro&lt;b&gt;)&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;values&lt;/b&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;(&lt;/b&gt;contador,&lt;span style=&quot;color: #38761d;&quot;&gt;/*codcliente*/&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;(select&lt;/b&gt; nome &lt;b&gt;from&lt;/b&gt; clientes &lt;b&gt;where&lt;/b&gt; codcliente = contador&lt;b&gt;),&lt;span style=&quot;color: #38761d;&quot;&gt;/*&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;nome&lt;b&gt;*/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;(select &lt;/b&gt;endereco &lt;b&gt;from &lt;/b&gt;clientes &lt;b&gt;where &lt;/b&gt;codcliente = contador&lt;b&gt;),&lt;span style=&quot;color: #38761d;&quot;&gt;/*&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;endereço&lt;b&gt;*/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;(select &lt;/b&gt;bairro &lt;b&gt;from &lt;/b&gt;clientes &lt;b&gt;where &lt;/b&gt;codcliente = contador&lt;b&gt;),&lt;span style=&quot;color: #38761d;&quot;&gt;/*&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;bairro&lt;b&gt;*/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;(select &lt;/b&gt;cep &lt;b&gt;from &lt;/b&gt;clientes &lt;b&gt;where &lt;/b&gt;codcliente = contador&lt;b&gt;),&lt;span style=&quot;color: #38761d;&quot;&gt;/*&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;cep&lt;b&gt;*/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;(select &lt;/b&gt;cidade &lt;b&gt;from &lt;/b&gt;clientes &lt;b&gt;where &lt;/b&gt;codcliente = contador&lt;b&gt;),&lt;span style=&quot;color: #38761d;&quot;&gt;/*&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;cidade&lt;b&gt;*/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;b&gt;(select &lt;/b&gt;estado &lt;b&gt;from &lt;/b&gt;clientes &lt;b&gt;where &lt;/b&gt;codcliente = contador&lt;b&gt;),&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/*estado*/&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;&amp;nbsp;(select &lt;/b&gt;datacadastro &lt;b&gt;from&lt;/b&gt; clientes &lt;b&gt;where &lt;/b&gt;codcliente &lt;b&gt;=&lt;/b&gt; contador&lt;b&gt;)&lt;span style=&quot;color: #38761d;&quot;&gt;/*&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;datacadastro&lt;b&gt;*/&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/*finaliza o insert*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;b&gt;raise&lt;/b&gt; notice &lt;span style=&quot;color: #b45f06;&quot;&gt;&lt;b&gt;&#39;&lt;/b&gt;Cliente Nº % inserido.&#39;&lt;/span&gt;, contador&lt;b&gt;;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/*imprime uma mensagem de confirmação*/&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;b&gt;exit when&lt;/b&gt; contador &lt;b&gt;= &lt;/b&gt;client&lt;b&gt;;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/*limita o loop quando o contador atingir o nº de clientes*/&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;contador&amp;nbsp;:= contador+1;&lt;span style=&quot;color: #38761d;&quot;&gt;/*incrementa o contador*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;b&gt;end loop;/&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;*finaliza o&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;laço de repetição*/&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;b&gt;end;&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/*encerra o procedimento*/&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;$$&lt;/b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;/*termina o bloco da função*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;b&gt;language&lt;/b&gt;&amp;nbsp;plpgsql;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Mensagem de Resultado das inserções.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-2RJsGLVnwT-gZWhJiopkhuojcOGRhZIWtkJW10rswiT4ddtm1OT39XRRyUPiinTGObimDTZeOo9LmCM5iieabcm2apy5juRn7V8aYj6OPDkmSy_67Sd73stsS6_bpXzJcyWRWEx3AXBN/s1600/asd.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-2RJsGLVnwT-gZWhJiopkhuojcOGRhZIWtkJW10rswiT4ddtm1OT39XRRyUPiinTGObimDTZeOo9LmCM5iieabcm2apy5juRn7V8aYj6OPDkmSy_67Sd73stsS6_bpXzJcyWRWEx3AXBN/s1600/asd.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Tabela Bkpclientes&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4HMCWNV63o-FIMmWU9vJPK2_D3-UFIWPSEVlCp5UGNr5P9Z5I-4b0viKci5AQdLCv0-az7641xymOZah6yB_ztvu7TovtxDBy-uJF63ji_1oNGel8VFA4zYvROTe2WWgdnl1Kxy1XfYaK/s1600/Sem+t%C3%ADtulo2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;98&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4HMCWNV63o-FIMmWU9vJPK2_D3-UFIWPSEVlCp5UGNr5P9Z5I-4b0viKci5AQdLCv0-az7641xymOZah6yB_ztvu7TovtxDBy-uJF63ji_1oNGel8VFA4zYvROTe2WWgdnl1Kxy1XfYaK/s640/Sem+t%C3%ADtulo2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Bom, é isso ai, pra quem queria conhecer alguma coisa de function no PostgreSQL ou relembrar, espero ter ajudado.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/3180107676784557409/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/function-plpgsql-postgresql.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/3180107676784557409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/3180107676784557409'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/function-plpgsql-postgresql.html' title='Função PL/pgSQL - PostgreSQL - Function'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAEO6uwCwuWTVvW0Sefnj_6Yiyg0OF_Mqd4BeG7TJPXhtsaU84PHj5V1EhOUFpnWIQzGLjM_eVkP89pduDfMfJNDf0UDe7x3rC-8PFd3gFQ6v-iwo9wFXgeJHjo-W6IAGBlqHzP1tHlGZI/s72-c/Sem+t%C3%ADtulo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8394059404684599395.post-5698200915117347972</id><published>2012-09-11T21:01:00.000-07:00</published><updated>2012-09-11T21:01:07.906-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ALL"/><category scheme="http://www.blogger.com/atom/ns#" term="banco de dados"/><category scheme="http://www.blogger.com/atom/ns#" term="Copiar dados postgres"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="operador all oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle 10 XE"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle 11g"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle 9i"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL SERVER"/><title type='text'>Operador ALL - SQL - Oracle 11g</title><content type='html'>&lt;br /&gt;
O operador &lt;b&gt;ALL &lt;/b&gt;verifica se o valor especificado é igual a todos os valores dentro do operador &lt;b&gt;all&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;u&gt;Exemplo:&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;SELECT &lt;/b&gt;NM_CLIENTE, ESTADO&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;CIDADES&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;WHERE&lt;/b&gt;&amp;nbsp;ESTADO&amp;nbsp;&lt;b&gt;&amp;lt;&amp;gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;ALL&lt;/b&gt;&amp;nbsp;(&#39;SP&#39;, &#39;RJ&#39;);&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Este comando ira recuperar todas as tuplas que contenham estado diferente de SP e RJ.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;b&gt;SELECT&amp;nbsp;&lt;/b&gt;*&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;FROM&lt;/b&gt;&amp;nbsp;PRODUTOS&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;WHERE&lt;/b&gt;&amp;nbsp;PRECO_CUSTO &amp;lt;&lt;b&gt;&amp;gt;&lt;/b&gt;&amp;nbsp;&lt;b&gt;ALL&lt;/b&gt;&amp;nbsp;(1.99, 2.99, 10.00);&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Retorna &amp;nbsp;todas&amp;nbsp;tuplas&amp;nbsp; &lt;b&gt;&lt;u&gt;diferentes de todos&lt;/u&gt;&lt;/b&gt; esses valores, 1.99, 2.99, e 10.00.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://studentsql.blogspot.com/feeds/5698200915117347972/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://studentsql.blogspot.com/2012/09/operador-all-sql-oracle-11g.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5698200915117347972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8394059404684599395/posts/default/5698200915117347972'/><link rel='alternate' type='text/html' href='http://studentsql.blogspot.com/2012/09/operador-all-sql-oracle-11g.html' title='Operador ALL - SQL - Oracle 11g'/><author><name>Marcelo Cicala</name><uri>http://www.blogger.com/profile/11117290147911040883</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>