sexta-feira, 5 de dezembro de 2014

Criando um Linked Server do SQL Server para MySQL - Sem usar OPENQUERY;

Pra quem já precisou alguma vez utilizar um Linked Server (Ou até DBLINK), sabe que para criar a "ponte" entre 2 SGBDS é necessário configurar o ODBC.

Como irei demonstrar a conexão entre o SQL Server para o MySQL, antes de começarmos você deverá baixar o driver ODBC do MySQL pelo site http://dev.mysql.com/downloads/connector/odbc/ e instalá-lo no Servidor de Banco de Dados SQL Server.



Na aba Fonte de Dados de Sistema adicione o driver MySQL ODBC ANSI.



Data Source Name: É o nome do Link (Ponte).
Description: Apenas utilizado caso queria preencher com alguma observação.
TCP/IP Server: IP do servidor MySQL.




Pronto ! Agora vamos ao SQL Server.



Defina os parâmetros:

Provedor/Provider: Microsoft OLE DB Provider for ODBC Drivers
Cadeia de caracteres do provedor/ Provider String: MySQL ODBC 5.3 ANSI Driver;SERVER=192.168.0.1;PORT=3306;DATABASE=bancomysql; USER=user;PASSWORD=password;OPTION=3;

OBS:
Server= IP do Servidor MYSQL
DataBase=Banco de dados MYSQL


Ok, executando o Select...

Select * FROM MYSQL_LINK...TABELA_MYSQL
Sintaxe  [Nome do Linked Server][...][Tabela do MYSQL]

Ops... Erro do Provedor MSDASQL.


Em Provedores, adicione nas propriedades do MSDASQL as opções conforme Print:

A opção que lhe permitirá executar o Select no formato [Nome do Linked Server][...][Tabela do MYSQL] é a SOMENTE NÍVEL ZERO.

Bom, agora vamos ao que nos interessa.

Select * FROM MYSQL_LINK...TABELA_MYSQL

















Att,
Bruno Duarte.

terça-feira, 25 de novembro de 2014

Problema ao restaurar backup do SQL Server 2000 para o 2012 [SQL Server];

Senhores, Boa tarde !

Se caso já tentou alguma vez restaurar backup do SQL Server 2000 para o 2012, com certeza retornou o seguinte erro:

-----------------------------------------------------------------------------------------------

 Msg 3169, Level 16, State 1, Line 2

The database was backed up on a server running version 8.00.0818. That version is incompatible with this server, which is running version 11.00.3000. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server.

Msg 3013, Level 16, State 1, Line 2

RESTORE DATABASE is terminating abnormally.

-----------------------------------------------------------------------------------------------

No SQL Server 2012, só é possível restaurar backups feitos da versão 2005 ou superior.

Para a solução, será necessário restaurar o backup do SQL Server 2000 em alguma outra instância SQL Server 2005 ou 2008.

No SQL Server 2005 ou 2008:

Defina o nível de compatibilidade (compatibility level) para SQL Server 2005 (90) ou SQL Server 2008 (100) e restaure o Backup.



Após finalizado, efetue o backup do banco de dados que foi feita a importação, e restaure o arquivo .BAK gerado no SQL Server 2012.

Bruno Duarte.

sexta-feira, 14 de novembro de 2014

Tabela READ ONLY - Funcionalidade do Oracle 11g [Oracle];

Senhores, Bom dia!

Uma das novas funcionalidades que chegou com o Oracle 11g foi a possibilidade de alterar uma tabela somente para leitura. Vou explicar um pouco melhor...

Quando criamos um usuário e queremos que ele tenha apenas a permissão de SELECT em uma tabela, concedemos o GRANT de SELECT a ele, mas e se você também quisesse que ninguém tivesse acesso a esta específica tabela? e até mesmo o proprietário (OWNER), SYS e SYSTEM.

Bom.. agora isto é possível com a funcionalidade READ ONLY - Garante que apenas o SELECT seja executado e para os outros comandos DML e Truncate (DDL), não são permitidos.

Bom...vamos ao exemplo.

ALTER TABLE TABELA READ ONLY;


E para permitir novamente os acessos a Tabela, utilizamos:

ALTER TABLE TABELA READ WRITE;

Parceria - Antonio Nilson: LinkedIn

Abs,
Bruno Duarte.

sexta-feira, 10 de outubro de 2014

Order BY em campo Varchar2 [Oracle];

Senhores, Boa tarde.

Aqui vai uma dica para o tipo de ordenação do comando ORDER BY.
Se ainda não ficou claro do que eu estou falando, vamos imaginar um campo Varchar2, contendo String, números e etc.

No ORDER BY, Como que iriam vir ordenados ?


















No meu caso retornou primeiro String e depois os números, isto ocorre pelo o valor que está definido do parâmetro NLS_SORT.

select * from nls_session_parameters;
















Se caso precisar que os caracteres numéricos apareçam antes dos caracteres alfabéticos, podemos fazer isso de 2 jeitos - Alterando a Sessão ou por uma Função própria do Oracle.

1- Alterando a Sessão
ALTER SESSION SET NLS_SORT='BINARY';

2-Pela Função NLSSORT
Ex: select nome from produto order by NLSSORT(nome,'NLS_SORT=BINARY');
















Se for necessário que seja ordenado de alguma outra maneira, nesta tabela mostra como seria ordenado se o NLS_SORT fosse definido para WEST_EUROPEAN, BINARY, BINARY_CI e BINARY_AI.














Abs!
Bruno Duarte.

quinta-feira, 18 de setembro de 2014

Commit a cada bloco de Insert - Otimizado [Oracle];

Senhores, Boa tarde!

Conforme falado no Post anterior, o desempenho da codificação do FORALL é extremamente rápido.

Precisei migrar uma tabela com alguns milhões de registros, assim foi necessário efetuar um INSERT parcial.
No exemplo, a cada 500 Mil de INSERTS será feito um commit:

DECLARE
   
   C_limit PLS_INTEGER := 500000;

   TYPE TCOLUNA1 IS TABLE OF TABELA.COLUNA1%TYPE;
   TYPE TCOLUNA2 IS TABLE OF TABELA.COLUNA2%TYPE;
   TYPE TCOLUNA3 IS TABLE OF TABELA.COLUNA3%TYPE;
   TYPE TCOLUNA4 IS TABLE OF TABELA.COLUNA4%TYPE;
   TYPE TCOLUNA5 IS TABLE OF TABELA.COLUNA5%TYPE;
   TYPE TCOLUNA6 IS TABLE OF TABELA.COLUNA6%TYPE;
   TYPE TCOLUNA7 IS TABLE OF TABELA.COLUNA7%TYPE;
   TYPE TCOLUNA8 IS TABLE OF TABELA.COLUNA8%TYPE;
   TYPE TCOLUNA9 IS TABLE OF TABELA.COLUNA9%TYPE;
     
   V_COLUNA1 TCOLUNA1;
   V_COLUNA2 TCOLUNA2;
   V_COLUNA3 TCOLUNA3;
   V_COLUNA4 TCOLUNA4;
   V_COLUNA5 TCOLUNA5;
   V_COLUNA6 TCOLUNA6;
   V_COLUNA7 TCOLUNA7;
   V_COLUNA8 TCOLUNA8;
   V_COLUNA9 TCOLUNA9;

   CURSOR CUR IS
   SELECT COLUNA1,COLUNA2,COLUNA3,COLUNA4,COLUNA5,COLUNA6,COLUNA7,COLUNA8,COLUNA9
   FROM TABELA;

BEGIN

 OPEN CUR;
   
   LOOP
      FETCH CUR
      BULK COLLECT INTO V_COLUNA1,V_COLUNA2,V_COLUNA3,V_COLUNA4,V_COLUNA5,V_COLUNA6,V_COLUNA7,V_COLUNA8,V_COLUNA9
      LIMIT c_limit;


      FORALL i in 1..V_COLUNA1.count
  
        INSERT INTO NOVA_TABELA
        (COLUNA1,COLUNA2,COLUNA3,COLUNA4,COLUNA5,COLUNA6,COLUNA7,COLUNA8,COLUNA9)
        VALUES
        (V_COLUNA1(i),V_COLUNA2(i),V_COLUNA3(i),V_COLUNA4(i),V_COLUNA5(i),V_COLUNA6(i),V_COLUNA7(i),V_COLUNA8(i),V_COLUNA9(i));
      
      EXIT WHEN V_COLUNA1.COUNT = 0;
      DBMS_OUTPUT.PUT_LINE(TO_CHAR(SQL%ROWCOUNT) || ' Linhas INSERIDAS');  
      COMMIT;
  
    END LOOP;
 CLOSE CUR;  
END;
Valeu,
Bruno Duarte.

sexta-feira, 5 de setembro de 2014

Commit a cada bloco de Delete - Otimizado [Oracle];

Pessoal,

Neste Post http://dbaduarte.blogspot.com.br/2014/05/commit-cada-bloco-de-delete.html demonstrei como efetuar um DELETE em massa com COMMIT, porém há outra forma muito mais rápida, sendo eficiente para tabelas com milhares de registros.

O Desempenho da codificação do FORALL é extremamente mais veloz que um LOOP, pois a declaração é executada apenas uma vez para cada entrada da coleção.

No exemplo, a cada 1 Milhão de DELETES será feito um commit:

DECLARE
       c_limit PLS_INTEGER := 1000000;

       TYPE urowid_table  IS TABLE OF UROWID  INDEX BY BINARY_INTEGER;
       rowids urowid_table;
 
   CURSOR CUR IS 
       Select rowid from TABELA
       where ID > 20;
   
BEGIN
   OPEN CUR;
   
     LOOP

       FETCH CUR
       BULK COLLECT INTO ROWIDS
       LIMIT c_limit;

         FORALL i in 1..ROWIDS.count
      
         delete from TABELA
         where ROWID = ROWIDS(i);
      
         EXIT WHEN ROWIDS.COUNT = 0;
         DBMS_OUTPUT.PUT_LINE(TO_CHAR(SQL%ROWCOUNT) || ' Linhas Deletadas');
         COMMIT;  

     END LOOP;
   CLOSE CUR;
END;

Valeu,
Bruno Duarte.

segunda-feira, 1 de setembro de 2014

Conexões do SQL Developer [Oracle];

Bom dia!

Já tive um problema com as minhas conexões salvas no SQL Developer, e por um momento achei que havia perdido todas elas.


As nossas conexões ficam salvas em um arquivo .XML, e assim foi possível importá-las novamente. - Ufa !

No Windows XP, encontramos no diretório:
C:\Documents and Settings\<username>\Application Data\SQL Developer\systemX.X.X.X.X\o.jdeveloper.db.connection.X.X.X.X.X.X.X\connections.xml

No Windows 7 (meu caso), diretório:
C:\Users\<username>\AppData\Roaming\SQL Developer\systemX.X.X.X.X\o.jdeveloper.db.connection.X.X.X.X.X.X.X\connections.xml

Caso já havia feito o upgrade do SQL Developer para 4.0.2, para cada versão é possível obter as conexões.















Agora é só salvá-las!

Abs,
Bruno Duarte.

quinta-feira, 28 de agosto de 2014

Comandos do Linux no Windows CMD;

Galera, Bom dia!

Aqui vai uma dica muito útil para utilizar alguns dos comandos Linux no Prompt (CMD) do Windows.

Disponibilizei para download no meu OneDrive o pacote necessário: Aqui


















Copie a pasta MinGW para a Raiz C:\
Em variáveis de ambiente - Variável PATH, adicione o diretório C:\MinGW\msys\1.0\bin





























Neste diretório é possível ver os comandos que podem ser utilizados.
Agora só abrir o CMD e sair usando

















Abs,
Bruno Duarte.

segunda-feira, 18 de agosto de 2014

Como parar a execução de um IMPDP OU EXPDP [Oracle];

Bom dia!

Quando importamos (IMPDP) ou exportamos (EXPDP) usando o datapump, a execução é feita por um JOB.

É possível vermos o processo em execução pela view dba_datapump_jobs.

select * from dba_datapump_jobs;







Se por algum motivo queira parar a execução, na janela do prompt:

1- Aperte: Ctrl+C
2- Digite: kill_Job 
ex: Import>kill_job
3- Confirme a pergunta com Y - Are you sure you wish to stop this job (y/n): y

Caso tenha fechado a janela do prompt não irá adiantar, o job ainda ficará rodando em background, mas ainda há uma solução para o encerrarmos.

Abra uma nova janela do prompt, digite:
-Caso Import
impdp system/senha@instancia attach=nome_do_job

-Caso Export
expdp system/senha@instancia attach=nome_do_job

Obs:
-Entre com a instância qual deseja encerrar o Job
-O nome do Job encontramos na view dba_datapump_jobs, no meu caso SYS_IMPORT_FULL_01

2- Digite: kill_Job 
ex: Import>kill_job
3- Confirme a pergunta com Y - Are you sure you wish to stop this job (y/n): y

Pronto! Os jobs foram encerrados com sucesso.

Abs,
Bruno Duarte.

terça-feira, 12 de agosto de 2014

Desabilitar a geração dos Arquivos de Alerta e Log - Oracle Client [Oracle];

Pessoal, Boa tarde!

O Oracle Client também gera Logs podendo ocupar um grande espaço desnecessário.

Podemos verificar o tamanho das pastas alert e trace no diretório:

Exemplo: .../oradiag_[username]/diag/clients/user_[username]/host_nnnnnn_nn


















Para desabilitarmos os logs, temos que adicionar os seguintes parâmetros no arquivo SQLNET.ORA.

DIAG_ADR_ENABLED = OFF
TRACE_LEVEL_CLIENT = OFF
TRACE_DIRECTORY_CLIENT=/dev/null
LOG_DIRECTORY_CLIENT = /dev/null
LOG_LEVEL_CLIENT = OFF












Abs,
Bruno Duarte.


segunda-feira, 28 de julho de 2014

ORA-14460: only one COMPRESS or NOCOMPRESS clause may be specified - IMPDP [Oracle];

Boa tarde!

Em uma importação data pump já devem ter se deparado com o erro ORA-14460: only one COMPRESS or NOCOMPRESS clause may be specified.

Pois bem, para contornar este problema:
Nos parâmetros do IMPDP  inclua o parâmetro transform=segment_attributes:n 

Exemplo:
IMPDP system/senha@instancia directory=data_pump_dir schemas=HR dumpfile=HR_DUMP.dmp logfile=HR_DUMP_LOG.log  transform=segment_attributes:n 

Abraços,
Bruno Duarte.

segunda-feira, 21 de julho de 2014

Como mudar o TEMPDB para outro diretório [SQL Server];

Boa tarde !

Hoje vou demonstrar a vocês como mudar o TEMPDB para outro diretório, que por default o localizamos na Unidade C:\.

Primeiro vamos localizar onde estão os seus arquivos de dados e Log do TEMPDB.


use tempdb 
go 
sp_helpfile 
go

















Agora iremos alterar o TEMPDB para o novo diretório - No meu caso mudei para a Unidade E:\.

use master
go
alter database tempdb modify file (name = tempdev, filename = 'E:\msql_data\tempdb.mdf')
go
alter database tempdb modify file (name = templog, filename = 'E:\msql_data\templog.ldf')
go

Após executado, será necessário parar a Instância do SQL Server.



Agora vamos mudar os arquivos tempdb.mdf e templog.ldf para o diretório o qual definimos no comando acima - No meu caso E:\msql_data\.

Para finalizar, teremos que iniciar a Instância SQL Server.

Pronto! O TEMPDB estará no novo local.

Abs,
Bruno Duarte.

segunda-feira, 14 de julho de 2014

ORA-28000: The account is locked [Oracle];

Senhores, Bom dia!

Alguma vez já devem ter se deparado com o ERROR ORA-28000: The account is locked.











Para resolvermos esse problema, conectado com o usuário SYSTEM, execute os comandos:

alter user HR account UNLOCK;

alter user HR identified by NEW_PASSWORD;



















Abs,
Bruno Duarte.

quinta-feira, 3 de julho de 2014

SQL Developer não consegue localizar o TNSNAMES.ORA [Oracle];

Pessoal, Bom dia!

Para quem tem 2 versões do Client Oracle instaladas na máquina, já deve ter acontecido de o SQL Developer não estar encontrando o caminho do diretório TNSNAMES.ORA.


A Solução é simples !

No SQL Developer, ir no Menu Tools > Preferences... irá abrir a janela de Preferências, no painel a esquerda expandir a opção Database > Advanced

Em Tnsnames Directory Defina o diretório onde esta TNSNAMES.ORA, no meu caso estava localizado no C:\app\oracle\product\11.2.0\client_1\network\admin


Pronto!
Agora quando for adicionar uma nova conexão, irá aparecer todas as suas instâncias.


Abs,
Bruno Duarte.


sexta-feira, 27 de junho de 2014

ORA-02304: invalid object identifier literal - IMPDP [Oracle];

Pessoal, Bom dia!

Ontem estava fazendo uma importação data pump (IMPDP) quando me deparei com os erros ORA-39083 e ORA-02304.

ORA-39083: Object type TYPE failed to create with error:
ORA-02304: invalid object identifier literal
Failing sql is:







A Causa do problema é quando estamos tentando importar com Objeto com OID que já existe no Banco de Dados - Deve ser único, ou seja, não podem conter 2 Objetos com o mesmo OID.

Para contornar esse problema:
Nos parâmetros do IMPDP  inclua o parâmetro TRANSFORM=oid:n.

Exemplo:
IMPDP system/senha@instancia directory=data_pump_dir schemas=HR dumpfile=HR_DUMP.dmp logfile=HR_DUMP_LOG.log TRANSFORM=oid:n

Abraços,
Bruno Duarte.

quinta-feira, 26 de junho de 2014

Treinamento PL/SQL | Download Apostila [Oracle];

Senhores,

Encontrei uma apostila PL/SQL muito interessante, e para facilitar ainda mais, esta totalmente em português.

Diferente de algumas que já li, o conteúdo desta é bem objetivo (sem enrolação).

Para você que esta começando a programar ou até para quem já é mais avançado, é bem legal dar uma conferida. 

Link para Download: Aqui



Abraços,
Bruno Duarte.

sexta-feira, 20 de junho de 2014

Engenharia Reversa - Package DBMS_METADATA [Oracle];

Pessoal, Bom dia!

Outro dia estava precisando recriar alguns objetos no meu Banco de Dados, quando conheci esta incrível Package chamada  DBMS_METADATA.

Com ela, é possível obtermos a Engenharia Reversa de praticamente qualquer criação (DDL).
As opções são muitas, por isso vou demonstrar algumas:

Como foi criada uma Tabela:

SELECT dbms_metadata.get_ddl ('TABLE', 'EMPLOYEES') FROM dual;









Como foi criada uma Procedure:

SELECT dbms_metadata.get_ddl('PROCEDURE', 'SECURE_DML') FROM dual;









Como falei, são muitas opções, sendo possível obter também a engenharia reversa de TRIGGER, PACKAGE, VIEW, FUNCTION, INDEX e etc.

Para mais informações, Link do documento da Própria Oracle:
http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_metada.htm

Valeu,
Bruno Duarte.

quarta-feira, 11 de junho de 2014

ORA-01917: user or role 'X' does not exist - IMPDP [Oracle];

Galera, Boa tarde!

Hoje passei o dia em chamados de Data Pump (EXPDP e IMPDP), até que em uma importação (IMPDP) me deparo com o  erro ORA-01917. 

GRANT EXECUTE ON "X" TO "X"
IMP-39083: Object type OBJECT_GRANT failed to create with error:
ORA-01917: user or role 'X' does not exist






A Solução é simples!
Nos parâmetros do IMPDP  inclua o parâmetro GRANTS=NO.

Exemplo:
IMPDP system/senha@instancia directory=data_pump_dir schemas=HR dumpfile=HR_DUMP.dmp logfile=HR_DUMP_LOG.log GRANTS=NO

Valeu,
Bruno Duarte.

terça-feira, 10 de junho de 2014

Como retirar acentos de uma coluna - Função Translate [Oracle];

Bom dia a todos!

Ontem estava desenvolvendo uma Função para retirar os acentos de uma determinada Coluna, quando após algumas pesquisas descobri uma função super simples do próprio Oracle.

> Função Translate

Select TRANSLATE ('Testando a Função Translate - Retira Acentuação',
                  'ŠŽšžŸÁÇÉÍÓÚÀÈÌÒÙÂÊÎÔÛÃÕËÜÏÖÑÝåáçéíóúàèìòùâêîôûãõëüïöñýÿ',
                  'SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy') 
                  As TRANSLATE FROM DUAL; 








Analisando a Função, de certa forma ela é parecida com o Replace, porém a diferença é que no Replace não seria possível fazer a substituição da letra acentuada por a letra sem acento em um único argumento.

Foi aí que utilizei a função no meu UPDATE !
Bom... Primeiro vamos visualizar a Tabela - A coluna Descrição com palavras acentuadas.















UPDATE  TB_PALAVRAS_ACENTUADAS
SET DESCRICAO = TRANSLATE (''||DESCRICAO||'',
                    'ŠŽšžŸÁÇÉÍÓÚÀÈÌÒÙÂÊÎÔÛÃÕËÜÏÖÑÝåáçéíóúàèìòùâêîôûãõëüïöñýÿ',
                    'SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy');









Após o UPDATE, todas as palavras acentuadas tiveram o seu acento removido/substituído.


Abraços,
Bruno Duarte.

quarta-feira, 4 de junho de 2014

Como alterar o idioma do Oracle SQL Developer para Inglês [Oracle];

Aqui vai uma dica para quem instalou o SQL Developer em Português.

Eu particularmente prefiro trabalhar com a ferramenta em inglês, pelo motivo de já ter acostumado com alguns termos.
Sempre quando leio Stored Procedure como Procedimento Armazenado é meio estranho! rs

Bom vamos ao que interessa!

Será necessário abrir o arquivo ide.conf localizado no diretório:
 C:\sqldeveloper\ide\bin    --No meu caso se localizava no C:\ (raiz).

Acrescentar esta linha no final do código e salvar.
AddVMOption -Duser.language=en













Agora será necessário reiniciar o SQL Developer e Pronto!
Estará em Inglês!

Abraços,
Bruno Duarte.

terça-feira, 3 de junho de 2014

Migração de Dados do SQL Server para Oracle - Via SQL LOADER [Exportação e Importação em massa];

Pessoal, Boa tarde!

Em um outro Post demonstrei a vocês o processo para migrar os dados do SQL Server para o Oracle.
Leia: http://dbaduarte.blogspot.com.br/2014/05/migracao-de-dados-do-sql-server-para.html

Hoje irei apenas mostrar um passo para otimizar o procedimento com exportação e importação em massa.
Após efetuado todos os passos do Post anterior, agora vamos no desenvolvimento da melhoria!

Com todos os comandos BCPs e arquivos CTLs desenvolvidos, será necessário salvá-los em uma pasta do Servidor SQL Server.
















Exemplo *.BCP:







Exemplo *.CTL:


















Ok ! Agora vamos desenvolver uma BAT para exportar todos os dados das tabelas de uma só vez.
Usei o utilitário osql pelo motivo do SQL Server estar na versão 2000, caso fosse uma superior usaria o sqlcmd.

-U: Usuário
-P: Senha
-S: Nome do Servidor (SQL Server)
-d: Nome da Base de dados
%1, %2, %3, %4: Parâmetros que iremos passar - Para não ser chumbado na BAT.
-i: Entrada (Arquivo)
-o: Saída (Arquivo)

osql -U%1 -P%2 -S%3 -d%4  -iTABLESQLSERVER.bcp  -oTABLESQLSERVER.log











Salvar a BAT na mesma pasta dos outros arquivos.


Iremos executar a BAT pelo cmd do Servidor SQL Server:
>cd C:\Migracao
>bcp.bat usuario senha nomedoservidor nomebasededados
OBS: Passando os parâmetros dos %1, %2, %3, %4










Os arquivos foram exportados em .TXT no C:\ do Servidor SQL Server - Conforme definimos nos arquivos .BCP. 
Salvá-los na mesma pasta dos outros arquivos.



















Feito ! Vamos a criação da BAT para a importação dos dados em massa no Servidor Oracle.

sqlldr userid=%1/%2@%3  control=TABLESQLSERVER.ctl   log=TABLESQLSERVER.log  
Salvar a BAT na mesma pasta dos outros arquivos.



















Para a importação, será necessário copiar a pasta com todos os arquivos para o Servidor Oracle, ou em algum outro local que tenha o Client do Oracle instalado e o TNSNAMES configurado com os dados do Servidor - No meu caso copiei para a minha máquina local.

Iremos executar a BAT pelo cmd (No meu caso da minha máquina local).
>cd C:\Migracao
>loader.bat usuario senha instanciaoracle









Pronto! Todas as suas tabelas foram migradas em massa de uma só vez!

Valeu,
Bruno Duarte.

quinta-feira, 29 de maio de 2014

Conectar no SQL Server, Sybase e MySQL pelo SQL Developer;

...Instalar o SQL Server, fazer a instalação do My SQL, baixar e instalar o Sybase ... Ah também o DB2?
Ufa... Cansei !

Hoje vou demonstrar a vocês, que apenas pelo SQL Developer é possível conectarmos nos Bancos de Dados de outras Fabricantes.

Para começarmos, será necessário baixarmos o Driver JDBC -  É através dele que efetuamos a ponte para conexão.
Link para os downloads: http://www.oracle.com/technetwork/database/migration/jdbc-migration-1923524.html

OBS: Irei demonstrar apenas com os SGBD's que atualmente utilizo.

Após baixar, será necessário extraí-los:














Agora vamos adicionar as conexões no SQL Developer.
No menu Tools>Preferences... irá abrir a janela de Preferências, no painel a esquerda expandir a opção Database>Third Party JDBC Drivers e clicar em Add Entry... (No meu caso eu já havia adicionado).

















Para ambos, adicionar o arquivo com extensão *.JAR - Um de cada vez.
























Pronto! Agora ao adicionar uma nova conexão, você verá 3 novas abas com os SGBD's.
Para testar, efetuei uma conexão em um servidor SQL Server.






















Select @@version;







Valeu !
Bruno Duarte.