Cara, bom dia .... vamos la.

Entao, digamos que estou utilizando o DMP, que foi gerado sem nenhum
registro e atraves do EXP, para "criar os objetos" do banco de dados. Em
seguida utilizo insert´s, para adicionar os registros apenas das tabelas que
desejo.

Pensei em fazer dessa maneira porque imaginei que fosse muito mais "facil"
para executar de forma automatica via programa delphi e sem a intervencao do
usuario ou de um DBA para fazer todo esse procedimento.

Meio que "resolvi" fazendo exatamente como você comentou. Mantive meu banco
de dados somente com registros nas tabelas que desejo e fiz um EXP extraindo
todas as linhas. Depois na outra "ponta" executei um IMP desse DMP, *SHOW DE
BOLA !!! ..rsrsrs. *Porem achei que dessa maneira da um pouco mais de
trabalho, pois preciso "montar" toda essa base com os objetos atualizados e
mantendo somente os registros que desejo.

Se você pensar da outra forma, a qualquer momento eu poderia executar o EXP
e ter um DUMP de todos os objetos atualizados. Na sequencia precisaria
somente "extrair" os dados que desejo. Dessa forma também, eu ainda tenho o
problema do Insert, no futuro, quando eu precisar "atualizar" a base do
cliente com os INSERT´s que eu enviar a ele. Ainda nao sei como resolver
100%.

Vou procurar informações sobre Pump Export, mas so por curiosidade, o
"import" desse processo seria atraves de linha de comando, como o IMP?
Pergunto porque a ideia é executar o IMPORT no servidor do Cliente via
aplicativo Delphi.

Fiz um teste dando um "Alter database character set INTERNAL_USE
WE8ISO8859P1;" porem, nao funcionou !!

Vou tentar dessa forma como me passou, alterar o charset da sessão, via
aplicativo e antes de executar os inserts.

Agora pergunto, consigo executar o "set" via linha de comando? Através do
aplicativo?

A minha configuração encontra-se com a que vem no padrao do Oracle XE
PARAMETER VALUE
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 10.2.0.1.0

Abraços e novamente, obrigado pela ajuda.






Em 2 de agosto de 2010 09:04, Gleyson Melo <gleysonm...@gmail.com> escreveu:

>
>
> Oi Adalberto, vou explorar mais ainda a dúvida sobre o EXP..
>
> Você tá fazendo importação sem linhas e depois importando com um SELECT
> criado, digamos, "na marra".
>
> Porque você não faz o import com linhas? Você deixa uma versão inicial do
> banco sempre atualizada com o sistema e pronta para ser exportada.
>
> E, se você puder e tiver tempo, mude pro Data Pump Export ao invés do
> export
> convencional (EXP). Ele é muito mais completo, performático, flexível e
> fácil de gerenciar problemas.
>
> Para tentar fazer funcionar do jeito que você já tá trabalhando, antes dos
> INSERTs, defina o charset igual ao do banco setando a variável de ambiente
> NLS_LANG, conforme o meu exemplo (de brincadeira) abaixo:
>
> C:\Users\Gleyson>set NLS_LANG='AMERICAN_BRAZIL.AL32UTF8';
>
> E depois, no sqlplus:
>
> SQL> select * from nls_session_parameters;
>
>
> PARAMETER VALUE
> ------------------------------ ------------------------------
> NLS_LANGUAGE AMERICAN
> NLS_TERRITORY BRAZIL
> NLS_CURRENCY R$
> NLS_ISO_CURRENCY BRAZIL
> NLS_NUMERIC_CHARACTERS ,.
> NLS_CALENDAR GREGORIAN
> NLS_DATE_FORMAT DD/MM/RR
>
> NLS_DATE_LANGUAGE AMERICAN
> NLS_SORT BINARY
> NLS_TIME_FORMAT HH24:MI:SSXFF
> NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF
>
> PARAMETER VALUE
> ------------------------------ ------------------------------
> NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
> NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
> NLS_DUAL_CURRENCY Cr$
>
> NLS_COMP BINARY
> NLS_LENGTH_SEMANTICS BYTE
> NLS_NCHAR_CONV_EXCP FALSE
>
> 17 rows selected.
>
> O client Oracle utiliza a variável de ambiente com o mesmo nome do
> parâmetro
> NLS para definir o seu valor.
>
> Aí, com o NLS_LANG batendo corretamente com o banco, creio que você tenha
> menos chance de ter problema. Isso é só um palpite mesmo, mas eu apostaria
> no Data Pump. Com isso você resolveria problemas com tipos mais elaborados,
> como BLOB também.
>
> Abraços.
>
> Atenciosamente,
> Gleyson Melo
>
> Em 30 de julho de 2010 10:43, Adalberto de Sousa Monteiro
>
> <asm...@gmail.com <asm190%40gmail.com>>escreveu:
>
> > Bom dia meu velho ... novamente, obrigado pela ajuda.
> > Vamos la... espero conseguir explicar ...
> >
> > A ideia seria "criar" o banco de dados via software, dessa forma executo
> da
> > minha base de desenvolvimento um EXPORT de um determinado Owner, gerando
> um
> > DMP com o parametro rows=N
> >
> > Exemplo da Linha de Comando: exp ophiuchus/sys...@xe file=c:\EXP_TA.DMP
> > log=c:\EXP_TA.LOG owner=ophiuchus compress=Y grants=Y indexes=Y
> triggers=Y
> > constraints=Y rows=N
> >
> > No sistema existem algumas tabelas padrões, exemplo, uma tabela de
> botoes.
> > Após o export, executo um select nessa tabela e crio um script com a
> linha
> > de comando INSERT para cada registro.
> >
> > Exemplo da Linha: INSERT INTO TABOTAO(DS_BMP, DS_CAPTION, DS_FONTE,
> > DS_HINT,
> > DS_LAYOUT, FL_ATIVO, FL_BLQSYS, FL_ENABLE, FL_FLAT, FL_FONTE_NEGRITO,
> > FL_SHOWHINT, FL_VISIVEL, ID_BOTAO, NM_BOTAO, QT_ALTURA, QT_COMPRIMENTO,
> > QT_FONTE_TAMANHO, QT_LARGURA, QT_ORDEM) VALUES ('CONFIGPROG.BMP', '',
> > 'ARIAL', 'CONFIGURAÇÃO DO PROGRAMA', 'BLGLYPHTOP', 'S', 'hExkYog/+ww=',
> > 'S',
> > 'S', 'S', 'S', 'S', 228, 'BTNCONFIGPROG', 5, 35, 8, 35, 0)
> >
> > Dessa forma, envio ao cliente os arquivos do sistema, um DMP e um arquivo
> > com todos os INSERT´s necessarios.
> >
> > O cliente seguiria a seguinte rotina: Instalar o Oracle XE (Next / Next),
> > definindo uma senha para o SYSTEM de seu banco.
> > Acessa o software que desenvolvi com a senha do SYSTEM e nele executo o
> IMP
> > do DMP, aonde serão criados todos os objetos sem nenhum registro. Ao
> > termino
> > executo o comando "EXECUTE DBMS_UTILITY.COMPILE_SCHEMA('USER');" no
> intuito
> > de compilar todos os objetos (Seria necessario? Nao sei, rs).
> >
> > Na sequencia, via sistema abro o arquivo TEXTO e começo a "pegar" linha a
> > linha (Insert) e executar nesse novo banco de dados. É nesse momento que
> > estou tendo problemas ....e somente com "alguns" caracteres, a principio
> > identifiquei que seria o " Ç ", pois outros registros foram inseridos,
> > tendo
> > " ~ ", exemplo.
> >
> > A versão do banco seria:
> > Oracle® Database Express Edition Getting Started Guide
> > 10g Release 2 (10.2)
> > B25610-01
> >
> > Estive pesquisando "select * from nls_database_parameters" e obtive o
> > seguinte resultado:
> >
> > *PARAMETER* *VALUE* NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA
> > NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS .,
> > NLS_CHARACTERSET AL32UTF8 NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT
> DD-MON-RR
> > NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM
> > NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT
> > HH.MI.SSXFF
> > AM TZR NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
> > NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE
> > NLS_NCHAR_CONV_EXCP FALSE NLS_NCHAR_CHARACTERSET AL16UTF16
> > NLS_RDBMS_VERSION
> > 10.2.0.1.0
> >
> > Preciso alterar algo? Porque os registros na base original (de
> > desenvolvimento responsavel em gerar o DMP), foram inseridos sem erro e
> com
> > os caracteres especiais? E me gera erro somento no "insert" dos dados?
> >
> > Na base original, eu os inseri direto no banco de dados, na "mão".
> >
> > Abraços e um otimo final de semana a todos,
> > Adalberto
> >
> >
> >
> > Em 30 de julho de 2010 09:16, Gleyson Melo 
> > <gleysonm...@gmail.com<gleysonmelo%40gmail.com>
> >
> > escreveu:
> >
> > >
> > >
> > > Você pode fazer isso usando Export (preferencialmente Data Pump). Você
> > > exporta os dados pra um arquivo e importa no outro banco. Isso
> atenderia?
> > > Existe algum requisito a mais que impeça isso? Essa rotina vai ser
> > > executada
> > > automaticamente ou manualmente?
> > >
> > > Ah, qual a versão do seu banco?
> > >
> > > Abraços.
> > >
> > > Atenciosamente,
> > > Gleyson Melo
> > >
> > > Em 29 de julho de 2010 16:04, Adalberto de Sousa Monteiro
> > >
> > > <asm...@gmail.com <asm190%40gmail.com> <asm190%40gmail.com>>escreveu:
>
> > >
> > > > Fala rapaz, valeu pelo retorno.
> > > >
> > > > Então, aonde e como confiro o charset ?
> > > >
> > > > Estou utilizando o Delphi 7 com o componente de acesso ODAC, conhece?
> > > >
> > > > O estranho é que se eu pegar a linha de comando e executar via PL/SQL
> > > > Developer, funciona corretamente.
> > > >
> > > > Lembrando que essa linha de comando é gerada apartir de dados do
> mesmo
> > > > banco
> > > > de dados, ou seja, tenho um banco de dados de desenvolvimento, aonde
> > vou
> > > > inserindo alguns dados em tabelas funcionais ao sistema. Depois monto
> > uma
> > > > rotina que gera um TXT com base nessas tabelas montando a linha de
> > > comando
> > > > do INSERT.
> > > >
> > > > O que quero fazer é simplesmente retornar esses dados de volva ao
> > banco,
> > > > porem em um banco aonde as tabelas estão vazias.
> > > >
> > > > Abraços e obrigado,
> > > >
> > > > Em 29 de julho de 2010 14:50, Gleyson Melo 
> > > > <gleysonm...@gmail.com<gleysonmelo%40gmail.com>
> > <gleysonmelo%40gmail.com>
>
> > > >
> > > > escreveu:
> > > >
> > > > >
> > > > >
> > > > > Qual é o Charset do seu XE? Você baixou aquele básico? Unicode?
> > > > >
> > > > > Você tem que gerenciar o problema de Charset nas camadas de
> > comunicação
> > > > com
> > > > > o banco.
> > > > >
> > > > > Você pode considerar a geração de um arquivo texto e a carga dos
> > dados
> > > > > através de sql*loader, dependendo do seu problema.
> > > > >
> > > > > Que linguagem você tá usando? Tá usando que componentes diretamente
> > no
> > > > > código? ADO?
> > > > >
> > > > > Abraços.
> > > > >
> > > > > Atenciosamente,
> > > > > Gleyson Melo
> > > > >
> > > > > Em 28 de julho de 2010 15:56, Adalberto de Sousa Monteiro
> > > > > <asm...@gmail.com <asm190%40gmail.com> <asm190%40gmail.com>
> <asm190%40gmail.com
>
> > >>escreveu:
> > >
> > > > >
> > > > >
> > > > > >
> > > > > >
> > > > > > Pessoal, boa tarde.
> > > > > >
> > > > > > Estou desenvolvendo um programa para executar alguns "INSERT´s"
> em
> > > uma
> > > > > base
> > > > > > ORACLE. Estou utilizando Oracle XE e drive de acesso ODAC.
> > > > > >
> > > > > > Crio em tempo de execução um componente para Query : OraQryKey :
> > > > > > TOraQuery;
> > > > > >
> > > > > > Leio um arquivo texto aonde contem as sintaxes de INSERT. Cada
> > > sintaxe
> > > > eu
> > > > > > executo da seguinte maneira:
> > > > > > OraQryKey.SQL.Clear;
> > > > > > OraQryKey.SQL.Text := vs_Linha;
> > > > > > OraQryKey.Execute;
> > > > > >
> > > > > > Para algumas sintaxes, estou tendo como resultado o seguinte
> erro:
> > > > > > ORA-00917: missing comma
> > > > > > Essa é uma linha que me retorna o erro: INSERT INTO
> > > > > > TAENTIDADE_TEMP_LAYOUT(DS_COLUNA, FL_ATIVO, ID_LAYOUT, NM_COLUNA,
> > > > > > NM_TABELA,
> > > > > > NR_ORDEM) VALUES ('Complemento do Endereço', 'S', 12,
> > > 'DS_COMPLEMENTO',
> > > > > > 'TAENTIDADE_TEMP', 5)
> > > > > >
> > > > > > Caso eu altere o "Endereço" para "Endereco" e executo,
> > funcionamento
> > > > > > perfeitamente.
> > > > > >
> > > > > > Em outros casos, tenho o seguinte erro: ORA-00911: invalid
> > character
> > > > > > Quando a sintaxe esta dessa forma: INSERT INTO
> > TAPROGRAMA(DS_CAPTION,
> > > > > > DS_COLOR_TITULO, DS_HELP, DS_HINT, FL_ITEMDEC, ID_PROGRAMA,
> > > > NM_PROGRAMA,
> > > > > > NR_ITEMPRINC, QT_COMPRIMENTO_TELA, QT_LARGURA_TELA) VALUES
> > ('Iniciar
> > > /
> > > > > > Pausar Serviço', '$00FFB7B7', '', '', 'N', 10, 'FORM_STARTSTOP',
> 0,
> > > > 575,
> > > > > > 180)
> > > > > >
> > > > > > E quando altero para essa forma, funciona: INSERT INTO
> > > > > > TAPROGRAMA(DS_CAPTION, DS_COLOR_TITULO, DS_HELP, DS_HINT,
> > FL_ITEMDEC,
> > > > > > ID_PROGRAMA, NM_PROGRAMA, NR_ITEMPRINC, QT_COMPRIMENTO_TELA,
> > > > > > QT_LARGURA_TELA) VALUES ('Iniciar / Pausar Servico', '$00FFB7B7',
> > '',
> > > > '',
> > > > > > 'N', 10, 'FORM_STARTSTOP', 0, 575, 180)
> > > > > > Alterando somente o "Serviço" para "Servico".
> > > > > >
> > > > > > Alguem saberia me dizer porque?
> > > > > >
> > > > > > Porém outros "inserts" com caracteres desse tipo, vai numa boa,
> até
> > > > mesmo
> > > > > > para a mesma tabela, como o exemplo abaixo:
> > > > > > INSERT INTO TAPROGRAMA(DS_CAPTION, DS_COLOR_TITULO, DS_HELP,
> > DS_HINT,
> > > > > > FL_ITEMDEC, ID_PROGRAMA, NM_PROGRAMA, NR_ITEMPRINC,
> > > > QT_COMPRIMENTO_TELA,
> > > > > > QT_LARGURA_TELA) VALUES ('Manutenção de Ações', '$00FFB7B7', '',
> > '',
> > > > 'N',
> > > > > > 27, 'FORM_CADACAO', 0, 800, 410)
> > > > > > INSERT INTO TAENTIDADE_TEMP_LAYOUT(DS_COLUNA, FL_ATIVO,
> ID_LAYOUT,
> > > > > > NM_COLUNA, NM_TABELA, NR_ORDEM) VALUES ('DATA DA ULTIMA ALTERAÇÃO
> > DO
> > > > > > REGISTRO', 'N', 18, 'DT_ALTERACAO', 'TAENTIDADE_TEMP', 0)
> > > > > >
> > > > > > Utilizo para acesso o banco de dados o PL/SQL Developer e se
> > executo
> > > a
> > > > > > mesma
> > > > > > linha diretamente por ele, insere tranquilamente.
> > > > > >
> > > > > > [As partes desta mensagem que não continham texto foram
> removidas]
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > > > ------------------------------------
> > >
> > > >
> > > >
> > > > ----------------------------------------------------------
> > > > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> > > > inteira responsabilidade de seus remetentes.
> > > > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> > > >
> > > > ----------------------------------------------------------
> > > > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
> > > Procedure
> > > > » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO!
> > VISITE:
> > > > http://www.oraclebr.com.br/
> > > > ----------------------------------------------------------
> > > > Links do Yahoo! Grupos
> > >
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> >
> > ----------------------------------------------------------
> > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> > inteira responsabilidade de seus remetentes.
> > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> >
> > ----------------------------------------------------------
> > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package »
> Procedure
> > » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
> > http://www.oraclebr.com.br/
> > ----------------------------------------------------------
> > Links do Yahoo! Grupos
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



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

--------------------------------------------------------------------------------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  
------------------------------------------------------------------------------------------------------------------------
 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a