Forms fazer insert em banco de dados mysql sem DBLINK

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
BCR
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 22 Nov 2012 1:40 pm
Localização: Patos de Minas
Breno Cristovão Rocha.

bom dia galera do Glufke !

Bom, primeiramente estou criando este tópico pois não achei nada parecido.

Pessoal o que estou precisando é o seguinte.

Tenho uma aplicação em Oracle Forms 11g funcionando beleza e etc.... eu tenho um módulo aqui onde preciso pegar as informações que estão salvas no banco de dados Oracle, mas preciso criar um botão onde eu faça um select e o retorno deste select faça um insert em um banco de dados mysql na web.

Gostaria de saber qual melhor forma de realizar este insert, sei que consigo fazer isso por DBLINK mas gostaria de fazer dentro do forms mesmo... é possível ?
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá BCR,

Não conheço nada de FORMS, mas veja se este link lhe ajuda:

http://www.oracle.com/technetwork/devel ... 133585.pdf

Boa sorte,

Sergio
BCR
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 22 Nov 2012 1:40 pm
Localização: Patos de Minas
Breno Cristovão Rocha.

beleza, vou dar uma olhada...

mas já parti para o DBLINK

Estou com dois erros:

Selecionar tudo

ORA-28545: erro diagnosticado pelo Net8 ao conectar com um agenteUnable to retrieve text of NETWORK/NCR message 65535
ORA-02063: precedendo 2 lines a partir de MYSQL
instalei o driver mysql...

onde criei a conexão ODBC no sistema operacional, consigo testar ela ! esta ok

depois criei no diretório :

Selecionar tudo

 D:\oracle11gr2One\product\11.2.0\dbhome_1\hs\admin 
O arquivo initmysql.ora

com o conteúdo

Selecionar tudo

HS_FDS_CONNECT_INFO = mysql
HS_FDS_TRACE_LEVEL = 0

no arquivo listener.ora

add

Selecionar tudo

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle11gr2One\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oracle11gr2One\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = mysql)
      (ORACLE_HOME = D:\oracle11gr2One\product\11.2.0\dbhome_1)
      (PROGRAM = dg4odbc)
    )
  )

e no arquivo TNSNAMES.ORA

o conteudo

Selecionar tudo

mysql =
        (DESCRIPTION=
        (ADDRESS=(PROTOCOL=tcp) (HOST= 192.168.0.210) (PORT=1521))
        (CONNECT_DATA=   (SID=mysql)   )
               (HS=OK)
        ) 

Alguém conhece sobre dblink para me dar um help... estou fazendo uma conexão de oracle para mysql

usei este link do youtube como auxilio...
se algum souber dar um help aí ! por gentileza !!
abraços
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

BCR,

Veja este link, talvez possa ajudar você:

https://community.oracle.com/thread/1104303?tstart=0

O Fábio Prado também tem um artigo interessantes explicando como criar um DBLINK:

http://www.fabioprado.net/2013/12/crian ... essar.html

Abraços,

Coutinho
BCR
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 22 Nov 2012 1:40 pm
Localização: Patos de Minas
Breno Cristovão Rocha.

consegui a conexão dblink do Oracle com o mysql !

só que a conexão é instavel... ela se perde !

Selecionar tudo

ora-28500: conexão do Oracle com um sistema não Oracle retornou esta mensagem: 
ora-02063: precedendo line a partir de MYSQL

Pesquisando mais a fundo, vi que pode ser o parâmetro

Selecionar tudo

 DISTRIBUTED_TRANSACTIONS 
não consegui identificar onde mudo o DISTRIBUTED_TRANSACTIONS... onde encontro ?

abraços galera e obrigado pelo help !
BCR
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 22 Nov 2012 1:40 pm
Localização: Patos de Minas
Breno Cristovão Rocha.

o link onde encontrei profissionais relatando o mesmo problema é este aqui.:


http://profissionaloracle.com.br/gpo/se ... t&type=raw
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

BCR,

Consultei algumas notas .. os motivos podem ser vários.

Algo do tipo:

- Uso de ALIAS nos comandos de UPDATE/DELETE
ex:

Selecionar tudo

DELETE FROM "NOME_BANCO".TABELA A1);
- Não identificação do banco MYSQL onde se situa a tabela (a sintaxe seria "NOME_BANCO".NOME_TABELA, com aspas duplas);

Se não conseguir resolver o problema, poste depois aqui o comando que está tentando executar e que está retornando com erro.

At

Sergio
BCR
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 22 Nov 2012 1:40 pm
Localização: Patos de Minas
Breno Cristovão Rocha.

beleza...

o código que tento executar é.:

Selecionar tudo

select * from "newsletter"@mysql
eu consigo retornar valores com este select normalmente... só que daqui um 1 se executar ele novamente ocorre o erro

Selecionar tudo

ora-28500: conexão do Oracle com um sistema não Oracle retornou esta mensagem: 
ora-02063: precedendo line a partir de MYSQL
no sql*plus logo novamente e apresenta seguinte mensagem.:

Selecionar tudo

ERROR: ORA-28500: conexão do ORACLE com um sistema não Oracle retornou esta mensagem: [MySQL][ODBC 5.3(a) Driver] MySQL server has
gone away{HY000,NativeErr = 2006} ORA-02063: precedendo 2 lines a partir de MYSQL
em seguida executo conexão novamente: conn nomeusuário/senha
ai me retorna que estou conectado...

beleza... assim que me retorna que estou conectado se executar o select que descrevi acima... o retorno é perfeito sem problema algum...

só que daqui 1 min, 2 min eu tenho que pedir conexão novamente...

se não tiver explicado de forma clara.... me informe que tento esclarecer melhor !
bratis
BCR
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 22 Nov 2012 1:40 pm
Localização: Patos de Minas
Breno Cristovão Rocha.

depois de muito tentar...

consegui melhorar e muito a conexão...

no ADMINISTRADOR DE FONTE DE DADOS ODBC, ao pedir para configurar a sua conexão já configurada anteriormente... existe um botão com nome de "Details"

na aba connection eu marquei três opções.:

Selecionar tudo

Enable automatic reconnect 
Don't prompt when connecting
Allow multiple statements

após marcar estas três opções, a conexão não cai conforme citado acima ! :-o

espero que possa ajudar alguém que necessite desta solução...

valeu a todos que tentaram ajudar !
bratis !!!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes