Bom, não sei que "toda a documentação" é essa que vc leu, mas como eu 
já tinha dito em respósta ao seu e-mail privado pra mim a 
recomendação pé o manual de "Utilities", na parte de sql*loader é ** 
LÁ ** que vc acha as opções (a external tabel NADA MAIS É do que um 
sql*loader "engrupido", disfarçado, ok ??
 Pra não ficar no ar, como diria um antigo professor meu de 
matemática, vamos tentar "tatibitatizar" isso, com um exemplo (no meu 
caso estou usando XE numa máquina win2kPRObr. mas em princípio o 
exemplo vale pra qquer banco 9i ou acima). Primeiro, assim que rodo o 
teu exemplo, a tabela external é criada, ok, mas quando faço select 
eu obtenho :

SQL> select * from tbl_fax;
ERROR:
ORA-29913:..... blablabla...
KUP-01005: syntax error: found "clob": expecting one 
of: "binary_double,
binary_float, comma, char, date, defaultif, decimal, double, float, 
integer, (,
nullif, oracle_date, oracle_number, position, raw, recnum, ), 
unsigned,
varrawc, varchar, varraw, varcharc, zoned"

OU SEJA, ele não está reconhecendo CLOB como tipo de coluna, E no 
citado manual no cap. 6 no link "SQL*Loader Datatypes" (estou usando 
a versão HTML aqui) ele EXPRESSAMENTE mostra que o sql*loader *** NÂO 
SUPORTA ** os mesmos datatypes nuilt-in Oracle, no caso tudo que for 
caracter nele é CHAR ou VARCHAR , com um TAMANHO, que vc tem que 
indicar, confere ??? Esse é o primeiro erro que vc cometeu...
 Eu contruí o seguinte arquivo-texto para o teste, usando o 
terminador que vc citava no e-mail particular :
 
C:\oraclexe\app\oracle\product\10.2.0\server\BIN>type c:\arqfax.txt
00000001000000001001Linha de texto 1 do registro regional=00000001 
resposta=000000001 fax_linha=001
Linha de texto 2 do registro regional=00000001 resposta=000000001 
fax_linha=001
Linha de texto 3 do registro regional=00000001 resposta=000000001 
fax_linha=001
Linha de texto 4 do registro regional=00000001 resposta=000000001 
fax_linha=001
Linha de texto 5 do registro regional=00000001 resposta=000000001 
fax_linha=001
TCP9999
00000002000000002002Linha de texto 1 do registro regional=00000002 
resposta=000000002 fax_linha=002
Linha de texto 2 do registro regional=00000002 resposta=000000002 
fax_linha=002
Linha de texto 3 do registro regional=00000002 resposta=000000002 
fax_linha=002
TCP9999
00000003000000003003Linha de texto 1 do registro regional=00000003 
resposta=000000003 fax_linha=003
Linha de texto 2 do registro regional=00000003 resposta=000000003 
fax_linha=003
Linha de texto 3 do registro regional=00000003 resposta=000000003 
fax_linha=003
Linha de texto 4 do registro regional=00000003 resposta=000000003 
fax_linha=003
TCP9999

no mesmo manual é DOCUMENTADO que o fim de linha é usado como fim de 
coluna/registro, A NÃO SER que vc especifique outro (o que ele chama 
de stream), OU que vc use as opções de montagem de registro lógico, 
eu vou usar o opção de stream no exemplo, que por caso acho q é a + 
fácil.  Vou também usar o loader diretamente, é mais fácil aqui pro 
meu teste, ficará como a sua tarefinha de casa converter pra sintaxe 
da external table, o que deve ser BICO de fazer, segue :

C:\oraclexe\app\oracle\product\10.2.0\server\BIN>type c:\arqfax.ctl
load data
infile str.dat "str X'544350393939390D0A'"
REPLACE
INTO TABLE TBL_FAX
(fax_regional position(001:008) integer external,
fax_resposta position(009:017) integer external,
fax_linha position(018:020) integer external,
fax_texto char(20000)
)

SQL> drop table tbl_fax;

Tabela eliminada.

SQL> create table tbl_fax
  2  (fax_regional number(08),
  3  fax_resposta number(09),
  4  fax_linha number(03),
  5  fax_texto clob
  6  );

Tabela criada.

C:\oraclexe\app\oracle\product\10.2.0\server\BIN>sqlldr scott/tiger 
data=c:\arqfax.txt control=c:\arqfax.ctl log=c:\arqfax.log 
bad=c:\arqfax.bad errors=9999

[EMAIL PROTECTED]:SQL>select * from tbl_fax;

FAX_REGIONAL FAX_RESPOSTA FAX_LINHA FAX_TEXTO
------------ ------------ --------- ----------------------------------
----------------------------------------------
           1            1         1 Linha de texto 1 do registro 
regional=00000001 resposta=000000001 fax_linha=001

                                    Linha de texto 2 do registro 
regional=00000001 resposta=000000001 fax_linha=001


                                    Linha de texto 3 do registro 
regional=00000001 resposta=000000001 fax_linha=001


                                    Linha de texto 4 do registro 
regional=00000001 resposta=000000001 fax_linha=001


                                    Linha de texto 5 do registro 
regional=00000001 resposta=000000001 fax_linha=001

           2            2         2 Linha de texto 1 do registro 
regional=00000002 resposta=000000002 fax_linha=002


                                    Linha de texto 2 do registro 
regional=00000002 resposta=000000002 fax_linha=002


                                    Linha de texto 3 do registro 
regional=00000002 resposta=000000002 fax_linha=002

           3            3         3 Linha de texto 1 do registro 
regional=00000003 resposta=000000003 fax_linha=003


                                    Linha de texto 2 do registro 
regional=00000003 resposta=000000003 fax_linha=003


                                    Linha de texto 3 do registro 
regional=00000003 resposta=000000003 fax_linha=003


                                    Linha de texto 4 do registro 
regional=00000003 resposta=000000003 fax_linha=003


[EMAIL PROTECTED]:SQL>

==> veja que eu entendi que vc quer PRESERVAR os new-lines entre as 
linhas, se vc na verdade os quisesse trocar vc poderia usar uma 
função SQL (como a REPLACE) para os eliminar... E veja também que 
este é um EXEMPLO apenas, absolutamente NÃO É uma consultoria, um 
programa pronto, testado e terminado, que funcionará pra TODA e 
QUALQUER característica que vc tenha, sim ??

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, "Jose - Oracle" 
<[EMAIL PROTECTED]> escreveu
>
> Algum colega poderia me auxiliar na seguinte inportacao, ja li e 
reli tda a documentacao, porem nao consegui fazer funcionar, 
> Problema : Tenho um arquivo texto no seguinte formato, e preciso 
importar esse arquivo para meu DB, como fazer ?
> 
> 12345678123456789123(aqui tenho um texto com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (barba)
> 12345678123456789123(aqui tenho um texto com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (barba)
> 12345678123456789123(aqui tenho um texto com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (aqui tenho um texto 
com 79 posicoes)
>                                              (barba)
> 
> 
> 
> //inicio
> create table tbl_fax
> (fax_regional    number(08),
>  fax_resposta    number(09),
>  fax_linha       number(03),
>  fax_texto       clob
> )
> organization external
> (type oracle_loader
> default directory tbl_ext
> access parameters
>  (records delimited by "barba"
>   badfile tbl_ext: 'lob_tab_%a_%p.bad'
>   logfile tbl_ext: 'lob_tab_%a_%p.log'
>   fields
>   missing field values are null
>   (fax_regional   position(001:008) integer external,
>   fax_resposta    position(009:017) integer external,
>   fax_linha       position(018:020) integer external,
>   fax_texto       clob
> ))
> location ('ARQFAX.TXT')
> );
> //final
> 
> 
> obrigado
> barba
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>







--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
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:
    [EMAIL PROTECTED]

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

 



Responder a