markevis 0 Denunciar post Postado Janeiro 14, 2006 Prezados, Preciso dar carga em quatro tabelas. Para isso existe uma stored procedure que lerá um arquivo de dadose apartir dele carregará as referidas tabelas. A minha dúvida é quais os parametros que devo colocar na procedure para executá-la. Abaixo segue um trecho da procedure. Este arquivo será colocado em um diretorio do servidor de BD (por exemplo, \\servidor\u03\arquivos) e apartir dele chamarei a procedure para dar carga nas tabelas. Assim quando chamar a procedure devo fazê-lo dessa forma:EXEC SPCCE_ARQUIVO_CONTRIBUINTE(<parametros necessários>);Se alguem puder me ajudar ficaria agradecido.CREATE OR REPLACE PROCEDURE "SPCCE_ARQUIVO_CONTRIBUINTE" ( PstrNome_Dir IN VARCHAR2) IS--**********************************************************************---- Descrição: Lê o arquivo com os dados de contribuinte os quais serão-- inseridos nas dimensões GEN_PESSOA_FISICA, GEN_PESSOA_JURIDICA, CCE_CONTRIBUINTE -- -------------------------------------------------------------------------- Layout do arquivo de importação-------------------------------------------------------------------------- NUMR_PESSOA_BASE (N09) 1-- NUMR_CPF (N11) 10-- NOME_PESSOA (A80) 101-- CODG_SEXO (A1) 25-- DATA_NASCIMENTO (N08) 37-- NUMR_INSCRICAO (N09) 39-- NOME_BAIRRO (A60) 89-- NOME_LOGRADOURO (A40) 129-- TIPO_LOGRADOURO (A04) 130-- CODG_MUNICIPIO (N06) 138-- CODG_CEP (N08) 146-- NUMR_ENDERECO (A06) 157-- NUMR_LOTE_ENDERECO (A05) 168-- NUMR_QUADRA_ENDERECO (A10) 176-- DESC_COMPL_ENDERECO (A80) 187--*** Declaração de variáveis LstrNome_Arq varchar(30); LstrNome_Dir varchar(20); LstrReg_Arq varchar(250) default 'x'; LstrOpen_Arq utl_file.file_type; LstrSqlErrm varchar(200); LstrDesc_Reg VARCHAR(400); LintCont_Reg number(11) := 0; LintQtde_update_pesfis number(11) := 0; LintQtde_insert_pesfis number(11) := 0; LintQtde_update_pesjur number(11) := 0; LintQtde_insert_pesjur number(11) := 0; LintQtde_update_contrib number(11) := 0; LintQtde_insert_contrib number(11) := 0; LintQtde_contador_notfound number(11) := 0; LintQtde_pesfis_notfound number(11) := 0; LintQtde_unidOper_notfound number(11) := 0; LregPessoa gen.gen_pessoa%rowtype; LregPesFis gen.gen_pessoa_fisica%rowtype; LregPesJur gen.gen_pessoa_juridica%rowtype; LregContrib cce.cce_contribuinte%rowtype; LregContador cce.cce_contador%rowtype; LregUnidOper gen.gen_unidade_operacional%rowtype;BEGIN dbms_output.enable; --LstrNome_Arq := 'DadosContribuinte.txt'; LstrNome_Dir := 'FLATFILES'; --PstrNome_Dir; LstrOpen_Arq := utl_file.fopen(LstrNome_Dir, PstrNome_Dir, 'r'); Loop Begin Begin utl_file.get_line( LstrOpen_Arq, LstrReg_Arq ); Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Janeiro 16, 2006 Pela SP o parametro seria o nome do diretório onde está o arquivo a ser processado. Não dá para saber o que realmente a SP faz --LstrNome_Arq := 'DadosContribuinte.txt'; --não executa esta linha LstrNome_Dir := 'FLATFILES'; --PstrNome_Dir; -- crava o nome do arquivo a ser aberto LstrOpen_Arq := utl_file.fopen(LstrNome_Dir, PstrNome_Dir, 'r'); -- abre o arquivo FLATFILES no dir -- do parametro Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Janeiro 16, 2006 Olá, Pelo que ví também, você precisará apenas de 1 parâmetro, que é o NOME DIRETORIO. Acho que o resto, a SP faz sozinho, Então, use: SQL > exec SPCCE_ARQUIVO_CONTRIBUINTE('\FileSystem\Diretorio\'); Abraços, http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif Compartilhar este post Link para o post Compartilhar em outros sites