Unwanted using utl_file.put_line output result
I don't know how the white space between the PRTA_NEW_IDN_REC. PRTA_TO_IDN and. PRTA_TRANS_ID_REC QUANTITY. Thank you for your help in advance.UTL_FILE. Put_line (f_ID_MAINT, RPAD (NVL(PRTA_TRANS_ID_REC. COMPTE,' '), 5,' ') |)
RPAD (NVL(PRTA_NEW_IDN_REC. PRTA_TO_IDN,' '), 6,' ') |
TO_CHAR (PRTA_TRANS_ID_REC. QUANTITY, ' 099999')
);
output
A0012112010 000002
A0014112010 000001
A0023112010 000002
A0025112010 000001
A0030112010 000001
Expected result:
A0101112010000002
D1055322779000005
D1055322503000008
D1055322547000009
question isn't put_line, it has to do with your mask to_char.
If you do nothing, you will get a space for positive numbers and a '-' for negative.
You must add 'fm' in front of the initial '0', and the space is removed.
You can find the masks of format in SQL language reference manual.
http://download.Oracle.com/docs/CD/E11882_01/server.112/e17118/sql_elements004.htm#SQLRF00216
--------
Sybrand Bakker
Senior Oracle DBA
Tags: Database
Similar Questions
-
PLSQL utl_file.put_line error after the script running 8 ' e
Hello
I wrote a script to export the results of a query to an external file using utl_file.put_line. the script works very well for the first 8 hours.
anonymous block filled
anonymous block filled
anonymous block filled
anonymous block filled
anonymous block filled
anonymous block filled
anonymous block filled
anonymous block filled
When I run the same script for the 9th time, I got an error message
Error from the 1 in the command line:
DECLARE
OutFile utl_file.file_type;
TYPE rc_a IS REF CURSOR;
l_rc_a rc_a;
TELLER_1 INTEGER: = 3;
ctt1 varchar (2000);
AA varchar (2000);
BEGIN
FOR TELLER_1 IN 3.9
LOOP
OutFile: = utl_file.fopen ('DAT_DIR', 'A1_W' |) TELLER_1 | "_KANS. TXT', 'w');
ctt1: = '
SELECT
WORP_XW | ''|''||
D | ''|''||
V5_AANTAL_KANS | ''|''||
V5_AVG_KANS | ''|''||
V6_AANTAL_KANS | ''|''||
V6_AVG_KANS | ''|''||
V7_AANTAL_KANS | ''|''||
V7_AVG_KANS | ''|''||
V8_AANTAL_KANS | ''|''||
V8_AVG_KANS | ''|''||
V9_AANTAL_KANS | ''|''||
V9_AVG_KANS
Of
(
Select D, V5_AANTAL_KANS, V5_AVG_KANS, V6_AANTAL_KANS, WORP_XW, ROUND(V6_AVG_KANS,6) V6_AVG_KANS ROUND(V5_AVG_KANS,6),
V7_AANTAL_KANS, V7_AVG_KANS, V8_AANTAL_KANS, ROUND(V8_AVG_KANS,6) V8_AVG_KANS ROUND(V7_AVG_KANS,6),
V9_AANTAL_KANS, ROUND(V9_AVG_KANS,6) V9_AVG_KANS
Of
(
Select WORP_XW, D, KAN,
case VERSIE_VX when "V5" then 5 when "V6" when then 6 "V7" when then 7 "V8" when then 8 "V9" then 9 end as VERSIE_VX
of VMENS. TOEVAL_BASIS_W' | TELLER_1 | »
)
pivot)
AVG (KAN) as AVG_KANS,
COUNT (KAN) AS AANTAL_KANS
by VERSIE_VX (V5, V6, V7, V8, V9 9 8 7 6 5)
)
ORDER BY D
)';
L_rc_a OPEN FOR ctt1;
LOOP
EXTRACTION l_rc_a IN aa;
EXIT WHEN l_rc_a % NOTFOUND;
-dbms_output.put_line (aa);
UTL_FILE.put_line (OutFile, aa, TRUE);
END LOOP;
END LOOP;
UTL_FILE.fclose (outfile);
END;
Error report:
ORA-29283: Ongeldige bestandsbewerking/ORA-29283: invalid file operation
ORA-06512: in 'SYS. UTL_FILE", regel 536
ORA-29283: Ongeldige bestandsbewerking/ORA-29283: invalid file operation
ORA-06512: in rule 14
29283 00000 - "invalid file operation.
* Cause: An attempt was made to read from a file or a directory which is
not exist, or the file or directory access was denied by the
Operating system.
* Action: Check access privileges to the file and directory on the file system
and if reading, check that the file exists.
The same is true when I use another script writes the results of a query to an external file. Y at - there someone who can tell me why I have an error message after running 8 ' e of this script.
With respect,
Michiel van MensThe second time through the outer loop, it will fail because you try to open a file that is already open. Move your utl_file.fclose statement of before the last "END LOOP '.
-
with utl_file - save the result in a txt file.
PLS, help...
I have a question that I used to use SQL PLUS, using the COIL and it worked very well.
Now, I'm changing it to pl/sql, which I'll have to use UTL_FILE.
The problem is that I need to create a file with a pre defined provision.
Can help you me pls?
Don't have much experience with UTL_FILE
Prompt 'Periodo MON-YY:' Define periodo = '&periodo' SPOOL C:\Users\gtorrens\Documents\GLAudit_2014_2015\gl_audit-&&periodo..txt set termout off set echo off set verify off set feedback off set serveroutput off set head off set pagesize 0 set linesize 608 set timing off SELECT /*+ INDEX(GCC GL_CODE_COMBINATIONS_U1) INDEX(GJB GL_JE_BATCHES_U1) INDEX(FUS FND_USER_U1) INDEX(GJL GL_JE_LINES_U1)*/ rpad(SUBSTR (gcc.segment1, 1, 2),2,' ') || rpad(TRANSLATE ( CONVERT ( TRANSLATE ( REPLACE(REPLACE (REPLACE (SUBSTR (emp.de_sgm, 1, 70), CHR (13), ''), CHR (10), ''),CHR (9), '') ,'??????????????????¡§©³º ¨¬²¹¢ª®´»£µ«¼!@#$%*()_+=[]{}/\?:<>|ãÃõÕçÇüÜâÂêÊôÔáÁàÀéÉíÍóÓúÚñшÞ' ,' aAoOcCuUaAeEoOaAaAeEiIoOuUnN ') ,'US7ASCII' ,'WE8ISO8859P1') ,'?',' '),70,' ') || rpad(SUBSTR (gjs.user_je_source_name, 1, 20),20,' ') || lpad(DECODE (NVL (gjl.entered_dr, 0) , 0, DECODE (NVL (gjl.accounted_dr, 0), 0, 'C', 'D') , 'D'),1,' ') || lpad(TO_CHAR (gjh.default_effective_date, 'DD-MON-YY'),9,' ') || lpad(TO_CHAR (gjh.posted_date, 'DD-MON-YY'),9,' ') || lpad(SUBSTR (gcc.segment2, 1, 9),9,' ') || rpad(TRANSLATE ( CONVERT ( TRANSLATE ( REPLACE(REPLACE (REPLACE (SUBSTR (cta.de_sgm, 1, 100), CHR (13), ''), CHR (10), ''),CHR (9), '') ,'??????????????????¡§©³º ¨¬²¹¢ª®´»£µ«¼!@#$%*()_+=[]{}/\?:<>|ãÃõÕçÇüÜâÂêÊôÔáÁàÀéÉíÍóÓúÚñшÞ' ,' aAoOcCuUaAeEoOaAaAeEiIoOuUnN ') ,'US7ASCII' ,'WE8ISO8859P1') ,'?',' '),100,' ') || rpad(SUBSTR (cta.tp_sgm, 1, 10),10,' ') || lpad(TO_CHAR (NVL (gjl.accounted_dr, 0),'999G999G999G999G999G990D00'),38,' ') || lpad(TO_CHAR (NVL (gjl.accounted_cr, 0),'999G999G999G999G999G990D00'),38,' ') || lpad(SUBSTR (gjh.currency_code, 1, 5),5,' ') || rpad(TRANSLATE ( CONVERT ( TRANSLATE ( REPLACE(REPLACE (REPLACE (REPLACE (SUBSTR (gjl.description, 1, 150), '|', '@'), CHR (13), ''), CHR (10), ''),CHR (9), '') ,'??????????????????¡§©³º ¨¬²¹¢ª®´»£µ«¼!@#$%*()_+=[]{}/\?:<>|ãÃõÕçÇüÜâÂêÊôÔáÁàÀéÉíÍóÓúÚñшÞ' ,' aAoOcCuUaAeEoOaAaAeEiIoOuUnN ') ,'US7ASCII' ,'WE8ISO8859P1') ,'?',' '),150,' ') || rpad(gjb.last_updated_by,15,' ') || rpad(TRANSLATE ( CONVERT ( TRANSLATE ( REPLACE(REPLACE (REPLACE (SUBSTR (gjb.name, 1, 100), CHR (13), ''), CHR (10), ''),CHR (9), '') ,'??????????????????¡§©³º ¨¬²¹¢ª®´»£µ«¼!@#$%*()_+=[]{}/\?:<>|ãÃõÕçÇüÜâÂêÊôÔáÁàÀéÉíÍóÓúÚñшÞ' ,' aAoOcCuUaAeEoOaAaAeEiIoOuUnN ') ,'US7ASCII' ,'WE8ISO8859P1') ,'?',' '),100,' ') || lpad(SUBSTR (fus.user_name, 1, 30),30, ' ') linha_utl FROM gl_je_lines gjl , gl_je_headers gjh , gl_code_combinations gcc , gl_je_sources gjs , gl_je_batches gjb , (SELECT 'EMPRESA' id_sgm , a.flex_value cd_sgm , b.description de_sgm , DECODE (SUBSTR (a.compiled_value_attributes, 5, 1) , 'L', 'Passivo' , 'A', 'Ativo' , 'E', 'Despesa' , 'O', 'Pat.Liq' , 'R', 'Receita') tp_sgm FROM fnd_flex_values_vl a, fnd_flex_values_tl b WHERE a.flex_value_set_id = 1015197 AND a.flex_value_id = b.flex_value_id AND b.language = 'PTB') emp , ( SELECT 'CONTA' id_sgm , a.flex_value cd_sgm , b.description de_sgm , DECODE (SUBSTR (a.compiled_value_attributes, 5, 1) , 'L', 'Passivo' , 'A', 'Ativo' , 'E', 'Despesa' , 'O', 'Pat.Liq' , 'R', 'Receita') tp_sgm FROM fnd_flex_values_vl a, fnd_flex_values_tl b WHERE a.flex_value_set_id = 1015237 AND a.flex_value_id = b.flex_value_id AND b.language = 'PTB') cta , fnd_user fus WHERE gjl.je_header_id = gjh.je_header_id AND gjb.je_batch_id = gjh.je_batch_id AND gjs.je_source_name = gjh.je_source AND gjh.ledger_id = 2041 -- p_nr_livro AND gjh.actual_flag = 'A' AND gjh.period_name = upper('&&periodo') -- 'JAN-14' AND gcc.code_combination_id = gjl.code_combination_id AND gcc.segment1 IN ('01', '12', '13', '14', '05', '16', '18') AND emp.id_sgm = 'EMPRESA' AND emp.cd_sgm = gcc.segment1 AND cta.id_sgm = 'CONTA' AND cta.cd_sgm = gcc.segment2 AND fus.user_id = gjb.last_updated_by -- AND rownum<1001 ; SELECT /*+ INDEX(GCC GL_CODE_COMBINATIONS_U1) INDEX(GJB GL_JE_BATCHES_U1) INDEX(FUS FND_USER_U1) INDEX(GJL GL_JE_LINES_U1)*/ (lpad(TO_CHAR (NVL (SUM(gjl.accounted_dr), 0),'999G999G999G999G999G990D00'),268,' ')) /*VL_DEBITO*/ ||' '||(lpad(TO_CHAR (NVL (SUM(gjl.accounted_cr), 0),'999G999G999G999G999G990D00'),37 ,' ')) /*VL_CREDITO*/ ||' '|| TO_CHAR (COUNT (*)) soma /*qtd_reg*/ FROM gl_je_lines gjl , gl_je_headers gjh , gl_code_combinations gcc , gl_je_sources gjs , gl_je_batches gjb , (SELECT 'EMPRESA' id_sgm , a.flex_value cd_sgm , b.description de_sgm , DECODE (SUBSTR (a.compiled_value_attributes, 5, 1) , 'L', 'Passivo' , 'A', 'Ativo' , 'E', 'Despesa' , 'O', 'Pat.Liq' , 'R', 'Receita') tp_sgm FROM fnd_flex_values_vl a, fnd_flex_values_tl b WHERE a.flex_value_set_id = 1015197 AND a.flex_value_id = b.flex_value_id AND b.language = 'PTB') emp , ( SELECT 'CONTA' id_sgm , a.flex_value cd_sgm , b.description de_sgm , DECODE (SUBSTR (a.compiled_value_attributes, 5, 1) , 'L', 'Passivo' , 'A', 'Ativo' , 'E', 'Despesa' , 'O', 'Pat.Liq' , 'R', 'Receita') tp_sgm FROM fnd_flex_values_vl a, fnd_flex_values_tl b WHERE a.flex_value_set_id = 1015237 AND a.flex_value_id = b.flex_value_id AND b.language = 'PTB') cta , fnd_user fus WHERE gjl.je_header_id = gjh.je_header_id AND gjb.je_batch_id = gjh.je_batch_id AND gjs.je_source_name = gjh.je_source AND gjh.ledger_id = 2041 AND gjh.actual_flag = 'A' AND gjh.period_name = '&&periodo' -- 'JAN-14' AND gcc.code_combination_id = gjl.code_combination_id AND gcc.segment1 IN ('01', '12', '13', '14', '05', '16', '18') AND emp.id_sgm = 'EMPRESA' AND emp.cd_sgm = gcc.segment1 AND cta.id_sgm = 'CONTA' AND cta.cd_sgm = gcc.segment2 AND fus.user_id = gjb.last_updated_by -- and rownum<1001; spool off;
I did something like that, when I turned it in a procedure...
create or replace PROCEDURE XXTVGAUDIT (o_return_err OUT VARCHAR2 , o_return_code OUT NUMBER , p_period_name IN VARCHAR2 , p_nr_livro IN NUMBER) IS CURSOR c1 IS SELECT rpad(SUBSTR (gcc.segment1, 1, 2),2,' ') || rpad(TRANSLATE ( CONVERT ( TRANSLATE ( REPLACE(REPLACE (REPLACE (SUBSTR (emp.de_sgm, 1, 70), CHR (13), ''), CHR (10), ''),CHR (9), '') ,'??????????????????¡§©³º ¨¬²¹¢ª®´»£µ«¼!@#$%*()_+=[]{}/\?:<>|ãÃõÕçÇüÜâÂêÊôÔáÁàÀéÉíÍóÓúÚñшÞ' ,' aAoOcCuUaAeEoOaAaAeEiIoOuUnN ') ,'US7ASCII' ,'WE8ISO8859P1') ,'?',' '),70,' ') || rpad(SUBSTR (gjs.user_je_source_name, 1, 20),20,' ') || lpad(DECODE (NVL (gjl.entered_dr, 0) , 0, DECODE (NVL (gjl.accounted_dr, 0), 0, 'C', 'D') , 'D'),1,' ') || lpad(TO_CHAR (gjh.default_effective_date, 'DD-MON-YY'),9,' ') || lpad(TO_CHAR (gjh.posted_date, 'DD-MON-YY'),9,' ') || lpad(SUBSTR (gcc.segment2, 1, 9),9,' ') || rpad(TRANSLATE ( CONVERT ( TRANSLATE ( REPLACE(REPLACE (REPLACE (SUBSTR (cta.de_sgm, 1, 100), CHR (13), ''), CHR (10), ''),CHR (9), '') ,'??????????????????¡§©³º ¨¬²¹¢ª®´»£µ«¼!@#$%*()_+=[]{}/\?:<>|ãÃõÕçÇüÜâÂêÊôÔáÁàÀéÉíÍóÓúÚñшÞ' ,' aAoOcCuUaAeEoOaAaAeEiIoOuUnN ') ,'US7ASCII' ,'WE8ISO8859P1') ,'?',' '),100,' ') || rpad(SUBSTR (cta.tp_sgm, 1, 10),10,' ') || lpad(TO_CHAR (NVL (gjl.accounted_dr, 0),'999G999G999G999G999G990D00'),38,' ') || lpad(TO_CHAR (NVL (gjl.accounted_cr, 0),'999G999G999G999G999G990D00'),38,' ') || lpad(SUBSTR (gjh.currency_code, 1, 5),5,' ') || rpad(TRANSLATE ( CONVERT ( TRANSLATE ( REPLACE(REPLACE (REPLACE (REPLACE (SUBSTR (gjl.description, 1, 150), '|', '@'), CHR (13), ''), CHR (10), ''),CHR (9), '') ,'??????????????????¡§©³º ¨¬²¹¢ª®´»£µ«¼!@#$%*()_+=[]{}/\?:<>|ãÃõÕçÇüÜâÂêÊôÔáÁàÀéÉíÍóÓúÚñшÞ' ,' aAoOcCuUaAeEoOaAaAeEiIoOuUnN ') ,'US7ASCII' ,'WE8ISO8859P1') ,'?',' '),150,' ') || rpad(gjb.last_updated_by,15,' ') || rpad(TRANSLATE ( CONVERT ( TRANSLATE ( REPLACE(REPLACE (REPLACE (SUBSTR (gjb.name, 1, 100), CHR (13), ''), CHR (10), ''),CHR (9), '') ,'??????????????????¡§©³º ¨¬²¹¢ª®´»£µ«¼!@#$%*()_+=[]{}/\?:<>|ãÃõÕçÇüÜâÂêÊôÔáÁàÀéÉíÍóÓúÚñшÞ' ,' aAoOcCuUaAeEoOaAaAeEiIoOuUnN ') ,'US7ASCII' ,'WE8ISO8859P1') ,'?',' '),100,' ') || lpad(SUBSTR (fus.user_name, 1, 30),30, ' ') linha_utl FROM gl_je_lines gjl , gl_je_headers gjh , gl_code_combinations gcc , gl_je_sources gjs , gl_je_batches gjb , (SELECT 'EMPRESA' id_sgm , a.flex_value cd_sgm , b.description de_sgm , DECODE (SUBSTR (a.compiled_value_attributes, 5, 1) , 'L', 'Passivo' , 'A', 'Ativo' , 'E', 'Despesa' , 'O', 'Pat.Liq' , 'R', 'Receita') tp_sgm FROM fnd_flex_values_vl a, fnd_flex_values_tl b WHERE a.flex_value_set_id = 1015197 AND a.flex_value_id = b.flex_value_id AND b.language = 'PTB') emp , ( SELECT 'CONTA' id_sgm , a.flex_value cd_sgm , b.description de_sgm , DECODE (SUBSTR (a.compiled_value_attributes, 5, 1) , 'L', 'Passivo' , 'A', 'Ativo' , 'E', 'Despesa' , 'O', 'Pat.Liq' , 'R', 'Receita') tp_sgm FROM fnd_flex_values_vl a, fnd_flex_values_tl b WHERE a.flex_value_set_id = 1015237 AND a.flex_value_id = b.flex_value_id AND b.language = 'PTB') cta , fnd_user fus WHERE gjl.je_header_id = gjh.je_header_id AND gjb.je_batch_id = gjh.je_batch_id AND gjs.je_source_name = gjh.je_source AND gjh.ledger_id = 2041 -- p_nr_livro AND gjh.actual_flag = 'A' AND gjh.period_name = upper('null') -- 'JAN-14' AND gcc.code_combination_id = gjl.code_combination_id AND gcc.segment1 IN ('01', '12', '13', '14', '05', '16', '18') AND emp.id_sgm = 'EMPRESA' AND emp.cd_sgm = gcc.segment1 AND cta.id_sgm = 'CONTA' AND cta.cd_sgm = gcc.segment2 AND fus.user_id = gjb.last_updated_by AND rownum<1001; CURSOR c2 IS SELECT /*+ INDEX(GCC GL_CODE_COMBINATIONS_U1) INDEX(GJB GL_JE_BATCHES_U1) INDEX(FUS FND_USER_U1) INDEX(GJL GL_JE_LINES_U1)*/ (lpad(TO_CHAR (NVL (SUM(gjl.accounted_dr), 0),'999G999G999G999G999G990D00'),268,' ')) /*VL_DEBITO*/ ||' '||(lpad(TO_CHAR (NVL (SUM(gjl.accounted_cr), 0),'999G999G999G999G999G990D00'),37 ,' ')) /*VL_CREDITO*/ ||' '|| TO_CHAR (COUNT (*)) soma /*qtd_reg*/ FROM gl_je_lines gjl , gl_je_headers gjh , gl_code_combinations gcc , gl_je_sources gjs , gl_je_batches gjb , (SELECT 'EMPRESA' id_sgm , a.flex_value cd_sgm , b.description de_sgm , DECODE (SUBSTR (a.compiled_value_attributes, 5, 1) , 'L', 'Passivo' , 'A', 'Ativo' , 'E', 'Despesa' , 'O', 'Pat.Liq' , 'R', 'Receita') tp_sgm FROM fnd_flex_values_vl a, fnd_flex_values_tl b WHERE a.flex_value_set_id = 1015197 AND a.flex_value_id = b.flex_value_id AND b.language = 'PTB') emp , ( SELECT 'CONTA' id_sgm , a.flex_value cd_sgm , b.description de_sgm , DECODE (SUBSTR (a.compiled_value_attributes, 5, 1) , 'L', 'Passivo' , 'A', 'Ativo' , 'E', 'Despesa' , 'O', 'Pat.Liq' , 'R', 'Receita') tp_sgm FROM fnd_flex_values_vl a, fnd_flex_values_tl b WHERE a.flex_value_set_id = 1015237 AND a.flex_value_id = b.flex_value_id AND b.language = 'PTB') cta , fnd_user fus WHERE gjl.je_header_id = gjh.je_header_id AND gjb.je_batch_id = gjh.je_batch_id AND gjs.je_source_name = gjh.je_source AND gjh.ledger_id = 2041 AND gjh.actual_flag = 'A' AND gjh.period_name = 'null' -- 'JAN-14' AND gcc.code_combination_id = gjl.code_combination_id AND gcc.segment1 IN ('01', '12', '13', '14', '05', '16', '18') AND emp.id_sgm = 'EMPRESA' AND emp.cd_sgm = gcc.segment1 AND cta.id_sgm = 'CONTA' AND cta.cd_sgm = gcc.segment2 AND fus.user_id = gjb.last_updated_by and rownum<1001; w_ind_erro NUMBER; w_erro_geral EXCEPTION; w_msg_erro VARCHAR2 (240); w_linha VARCHAR2 (1000); w_nm_arq_utl UTL_FILE.file_type; w_nm_arq_utl_r UTL_FILE.file_type; w_nm_dir_dad VARCHAR2 (80); --w_nm_int_dir_dad VARCHAR2 (80); --w_nm_arq_dad VARCHAR2 (80); w_nm_arq_dad_aux VARCHAR2 (80); w_nm_arq_dad_qtd VARCHAR2 (80); P_DIRETORIO VARCHAR2(200) := '/tmp'; P_ARQUIVO VARCHAR2(200) := 'Desliga_mainframe_indices_economicos.csv'; W_DIRETORIO VARCHAR2(50) := P_DIRETORIO; W_ARQUIVO VARCHAR2(50) := P_ARQUIVO; w_qtd_reg NUMBER; -- ----------------------------------------------- PROCEDURE pr_abre_txt --(p_nm_dir IN VARCHAR2, p_nm_arq IN VARCHAR2, p_tp_abertura IN VARCHAR2) IS BEGIN w_nm_arq_utl := UTL_FILE.fopen ( W_DIRETORIO, W_ARQUIVO, 'W'); EXCEPTION WHEN UTL_FILE.invalid_path THEN UTL_FILE.fclose (w_nm_arq_utl); raise_application_error (-20504, 'ERRO NA ABERTURA DO ARQUIVO: Caminho Invalido'); WHEN UTL_FILE.invalid_mode THEN UTL_FILE.fclose (w_nm_arq_utl); raise_application_error (-20504, 'ERRO NA ABERTURA DO ARQUIVO: Modo Invalido'); WHEN UTL_FILE.invalid_filehandle THEN UTL_FILE.fclose (w_nm_arq_utl); raise_application_error (-20504, 'ERRO NA ABERTURA DO ARQUIVO: Nome Arquivo Invalido'); WHEN UTL_FILE.invalid_operation THEN UTL_FILE.fclose (w_nm_arq_utl); raise_application_error (-20504, 'ERRO NA ABERTURA DO ARQUIVO: Operacao Invalida'); WHEN UTL_FILE.read_error THEN UTL_FILE.fclose (w_nm_arq_utl); raise_application_error (-20504, 'ERRO NA ABERTURA DO ARQUIVO: Erro Leitura'); WHEN UTL_FILE.write_error THEN UTL_FILE.fclose (w_nm_arq_utl); raise_application_error (-20504, 'ERRO NA ABERTURA DO ARQUIVO: Erro Escrita'); WHEN UTL_FILE.internal_error THEN UTL_FILE.fclose (w_nm_arq_utl); raise_application_error (-20504, 'ERRO NA ABERTURA DO ARQUIVO: Erro Interno'); END pr_abre_txt; -- ------------------------------------------------------ PROCEDURE pr_grava_txt (p_de_msg IN VARCHAR2) IS BEGIN UTL_FILE.put_line (w_nm_arq_utl, p_de_msg); EXCEPTION WHEN UTL_FILE.invalid_path THEN raise_application_error (-20503, 'ERRO AO GRAVAR: Caminho Invalido'); WHEN UTL_FILE.invalid_mode THEN raise_application_error (-20503, 'ERRO AO GRAVAR: Modo Invalido'); WHEN UTL_FILE.invalid_filehandle THEN raise_application_error (-20503, 'ERRO AO GRAVAR: Nome Arquivo Invalido'); WHEN UTL_FILE.invalid_operation THEN raise_application_error (-20503, 'ERRO AO GRAVAR: Operacao Invalida'); WHEN UTL_FILE.read_error THEN raise_application_error (-20503, 'ERRO AO GRAVAR: Erro Leitura'); WHEN UTL_FILE.write_error THEN raise_application_error (-20503, 'ERRO AO GRAVAR: Erro Escrita'); WHEN UTL_FILE.internal_error THEN raise_application_error (-20503, 'ERRO AO GRAVAR: Erro Interno'); END pr_grava_txt; -- ------------------------------------------------------ PROCEDURE pr_fecha_txt IS BEGIN UTL_FILE.fclose (w_nm_arq_utl); EXCEPTION WHEN OTHERS THEN raise_application_error (-20501, 'ERRO NO FECHAMENTO ARQUIVO DE LOG'); END pr_fecha_txt; -- -------------------------------------------------------------------------------------------------- BEGIN --PR_ABRE_TXT (W_NM_DIR_SQL, W_NM_ARQ_DAD ,'w'); pr_abre_txt ( W_DIRETORIO, W_ARQUIVO, 'w'); w_nm_arq_utl_r := UTL_FILE.fopen ( w_nm_arq_utl, w_nm_arq_dad_qtd, 'w'); -- w_qtd_reg := 0; /* FOR cur2 IN c2 LOOP w_linha := cur2.soma; pr_grava_txt (w_linha); w_qtd_reg := w_qtd_reg + 1; --IF MOD (w_qtd_reg, 100000) = 0 THEN UTL_FILE.put_line (w_nm_arq_utl_r, 'Qtd. de linhas geradas = ' w_qtd_reg w_linha ); --END IF; END LOOP; -- UTL_FILE.put_line (w_nm_arq_utl_r, 'Final de Qtd. de linhas geradas = ' || w_qtd_reg); UTL_FILE.fclose (w_nm_arq_utl_r); --*/ -- -------------------------------------------------------------------------------------------------- pr_fecha_txt; -- -- -------------------------------------------------------------------------------------------------- EXCEPTION WHEN w_erro_geral THEN raise_application_error (-20501, 'Parada por motivo de Erros na execução.'); -- END XXTVGAUDIT;
Oracle Directory object is not OS directory. It is a definition saying Oracle which OS directory to use. When Oracle run
v_file: = UTL_FILE.fopen ('TMP_DIR', 'output.log', 'W');
He goes to the data dictionary and:
1. it checks the Oracle directory object exists tmp_dir
2. If the Oracle user is allowed to create files on this object directory Oracle (see WRITING privilege granted I posted)
3 reflects the object of Oracle TMP_DIR for OS directory/tmp directory
4 creates the file /tmp/output.og owned by OS oracle user with the appropriate permissions on the database server (assuming that OS directory Oracle Directory object points on exists and oracle OS user can create files there).
Remember, most of the time the OS Oracle user created files permissions are such that the 'others' can even read.
SY.
-
How to use UTL_FILE to print a JPG image in a CLOB
I'm using Oracle 11.g. I have an Oracle Apex application that generates automated emails. In the Apex, the user inserts a JPG image in a rich text field. This image is stored in a CLOB field. When it's time to send emails, Apex calls a stored procedure that reads the JPG image and stores it in a local variable called l_image_clob. The procedure of sending the embedded image with the rest of the body by e-mail to a list of users. (Note: this an embedded image and it is not an attachment). It all works very well.
Now, I try to save the JPG image content stored in the l_image_clob variable in a JPG file on the server. The server is located on a Windows 7 platform. The following code generates a file named correctly and the size of the file is correct, but it is not readable by the system. I get the error "is not a valid bitmap file" when I try to open it with Microsoft Paint. The image in the clob data looks something like: / 9j/4AAQSkZJRgABAgEAZABkAAD/4RXaRXhpZgAATU0AKg (a bunch more data) SSSSUpJJJJSkkkklKSSSSU / / Z
How do I use utl_file to save the JPG image bank in the l_image_clob variable to a valid JPG file?
-- Here's the code which creates the file that is "not a valid bitmap file"
-- Create a file based on the content of l_image_clob
l_image_filename := 'image_' || p_event_pkey || '_' || i ||
'.' || l_image_ext;
l_file_handle := utl_file.fopen(l_dirname , l_image_filename, 'wb');
-- wb is write byte. This returns file handle
<<inner_loop>>
for i in 1 .. ceil( length( l_image_clob ) / chnksz )
loop
utl_file.put_raw( l_file_handle,
utl_raw.cast_to_raw( substr( l_image_clob, (i-1) * chnksz + 1, chnksz )));
utl_file.fflush(l_file_handle);
end loop inner_loop;
utl_file.fclose(l_file_handle);procedure clobbase642file (p_clob clob, p_dir varchar2, varchar2 p_filename)
is
t_buffer varchar2 (32767).
number of t_pos: = 1;
number of t_size: = nls_charset_decl_len (32764, nls_charset_id ("char_cs"));
number of t_len;
t_fh utl_file.file_type;
Start
t_fh: = utl_file.fopen (p_dir, p_filename, "wb", 32767);
t_len: = length (p_clob);
loop
When the t_pos output > t_len;
t_buffer: = replace (replace (substr (p_clob, t_pos, t_size), Chr (10)), Chr (13));
t_pos: = t_pos + t_size;
all in t_pos <= t_len="" and="" mod(="" length(="" t_buffer="" ),="" 4="" )="">0
loop
t_buffer: = t_buffer | Replace (replace (substr (p_clob, t_pos, 1), Chr (10)), Chr (13));
t_pos: = t_pos + 1;
end loop;
UTL_FILE.put_raw (t_fh, utl_encode.base64_decode (utl_raw.cast_to_raw (t_buffer)));
end loop;
UTL_FILE.fclose (t_fh);
end;
=> -
CANNOT ACCESS THE FILE USING UTL_FILE
I created using mon_repertoire
create or replace directory mon_repertoire as 'd:\try ';
then I did
GRANT read, write on DIRECTORY mon_repertoire TO scott;
then I create a following procedure d...
Create or replace procedure UTLTEST as
utl_file.file_type F1.
Start
-Open a file in write mode
F1: is utl_file.fopen('MY_DIR','newfile.txt','W');.
-Write a line to a file
UTL_FILE.put_line (f1, 1.) "This is a test of package UTL_FILE);
UTL_FILE.put_line (f1 2), Oracle has added a new procedure in the package ');
UTL_FILE.put_line (f1 3), Let's see together the procedure one ');
-Closes a file
UTL_FILE.fclose (F1);
end;
I got the following errors:
ERROR on line 1:
ORA-29283: invalid file operation
ORA-06512: at "SYS." UTL_FILE", line 475
ORA-29283: invalid file operation
ORA-06512: at "SCOTT. UTLTEST', line 5
ORA-06512: at line 1
How can I do this task?Hello
Create an inventory of items that points to a physical directory on the server.
If the path to the physical directory in the db server is D:\applications
Then,
Simply create the directory as objectCREATE or replace directory mon_repertoire is "D:\applications";
Then try your coding plsql.
-
Procedure using utl_file.fopen
Hello
I want to open a file, read line by line, and if I find a particular word, I want to display the whole line.
I tried to write a procedure, but not getting desired do not output.
DECLARE
x utl_file.file_type;
y varchar2 (200);
BEGIN
x: = utl_file.fopen('TRACE1',DB_ora_111_trc.txt','R');
LOOP
BEGIN
UTL_FILE. GET_LINE(x,y);
If x = "select".
dbms_output.put_line (x);
end if;
EXCEPTION
WHEN NO_DATA_FOUND THEN EXIT;
END;
END LOOP;
UTL_FILE.fclose (x);
END;
/
Here I am opening a file of tkprof and trying to grep for select word and if he is found, select all to display query. The above doesn't show any output. Kindly help me as I'm new to coding.
Thank youuser10698496 wrote:
Thank you BlueShadow.I tried to run, but received the error as
ORA-06502: PL/SQL: digital or value error: character of number conversion error.I put the '+ 5' after barcket.
Oops, my bad. Sorry about that.
DECLARE f utl_file.file_type; s varchar2(2000); in_select boolean; BEGIN f := utl_file.fopen('TRACE1','DB_ora_1118250.trc.txt','R'); in_select := false; LOOP BEGIN UTL_FILE.GET_LINE(f,s); if lower(s) like '%select%' or in_select then dbms_output.put_line(s); if lower(s) like '%from%' then dbms_output.put_line('TABLES: '||substr(s,instr(s,'from')+5)); -- +5 to get past the from and the space character after it. end if; in_select := not(s like '%;'); -- stop when we get to ";" at end of a line. end if; EXCEPTION WHEN NO_DATA_FOUND THEN EXIT ; END; END LOOP; utl_file.fclose(f); END; / SELECT lpad(to_char(NVL(MAX(to_number(serial_num)), 0) + 1), 12, '0') FROM TABLES: SALES WHERE s_id = :1 AND s_name = :2 SELECT S_CODE FROM TABLES: S_MAST WHERE s_id = :1 AND s_name = :2
If you notice after 'from' the word TABLE is attached due to dbms_output.put_line('TABLES.)
But he did not cut the name of the table only and shown as output.Well, obviously, now we can see the entire SQL statement that you are querying, your table names are not on the same line as your statement 'FROM '.
This means that it won't be easy to spot where the tables are in the statement.Perhaps if you explained what you're actually trying to reach, then we can help you, but looks like you are trying to do something beyond the reach of reason.
I also tried to put the output in a file
DECLARE f utl_file.file_type; s varchar2(2000); in_select boolean; opfile utl_file.file_type; BEGIN f := utl_file.fopen('TRACE_EXTRACT','nis_trc.txt','R'); opfile := utl_file.fopen ('TRACE1',,'SELECT.txt','W'); in_select := false; LOOP BEGIN UTL_FILE.GET_LINE(f,s); if lower(s) like '%select%' or in_select then dbms_output.put_line(s); utl_file.put_line(opfile,s); in_select := not(s like '%;'); -- stop when we get to ";" at end of a line. end if; EXCEPTION WHEN NO_DATA_FOUND THEN EXIT ; END; END LOOP; utl_file.fclose(f); END; / ERROR at line 1: ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation ORA-06512: at line 8
The TRACE1 directory exist and I also granted READ/WRITE permissions. Why does this error happen?
Perhaps because of this...
opfile := utl_file.fopen ('TRACE1',,'SELECT.txt','W');
You seem to have an extra ',' in your settings.
-
How to add a character using UTL_FILE pkg
A table with student_id, student_name and date_of_join.
I'm loading data from flat file below using UTL_FILE packagecreate table student(std_id varchar2(10),std_name varchar2(20),std_doj date);
I use a procedure to load the data into the table using the UTL_FILE package101 ron 04081999 101 ron 01081996 102 ram 05082000 102 ram 12101999 103 fin 06082001 104 gin 07082002 105 gem 08082003
Student ID 101 & 102 have two dates mating as they registered for two courses. In the flat file, there is no change in the std_id, but I have to add a 'C' character to those who have registered for the second course.
I have to add a character in column std_id. for example: after loading the result I want is
Can you please give me an idea on how to get the result above using UTL_PACKAGE in the procedure?std_id std_name std_doj -------------------------------------------------------------- 101 ron 04081999 101C ron 01081996 102 ram 05082000 102C ram 12101999 103 fin 06082001 104 gin 07082002 105 gem 08082003
It has nothing to do with UTL_FILE. In your charge process you are a loop in the file line by line, right? IF you need to:
DECLARE prev_std_id number; BEGIN LOOP read a line parse it into std_id, std_name and std_doj IF std_id = prev_std_id THEN std_id := std_id || 'C'; ELSE prev_std_id := std_id; END IF; insert row END LOOP; END;
SY.
-
Hello
We try to generate a flat file from an Oracle table through utl_file.put_line. He is troubled with the Fed line of character. How deal with him or another way to do this?
Any suggestions are greatly appreciated.
Thank you.
JimmyI assume that your database is running on unix/linux?
Try to use UTL_FILE. PUT (Data), followed by a UTL_FILE. PUT (CHR (13): 10;)
-
problem to extract data from the database using UTL_FILE
Dear members
I make use of series for the SUBSTR and INSTR function to extract the fields of a data file and carve out spaces based on the number of post mentioned in the Excel worksheet. I was able to extract the first 3 areas namely, customer, manufacturer, product, but for quantity, requested delivery date, price, I can't do it.
the flat file structure is as follows:
Sample data in the flat file is as follows:Field Position From Position To CUSTOMER_NAME 1 30 MANUFACTURER 31 70 PRODUCT_NAME 71 90 QUANTITY 91 95 REQUESTED_SHIP_DATE 96 115 REQUESTED_PRICE 116 120
My program code is the following:BESTBUY SONY ERICSSON W580i 25 1-AUG-2008 50 BESTBUY SAMSUNG BLACKJACK 50 15-JUL-2008 150 BESTBUY APPLE IPHONE 4GB 50 15-JUL-2008 BESTBUY ATT TILT 100 15-JUN-2008 BESTBUY NOKIA N73 50 15-JUL-2008 200
I was able to extract the first 3 fields of the file data, but when I use the same SUBSTR and INSTR functions to extract then three fields I am unable to do so (I get 5, 6 on the ground as well when I extract the 4th field). I've hardcoded the position values in these functions, such as mentioned in the structure of flat file.CREATE OR REPLACE PROCEDURE ANVESH.PROC_CONVERSION_API(FILE_PATH IN VARCHAR2,FILE_NAME IN VARCHAR2) IS v_file_type utl_file.file_type; v_buffer VARCHAR2(1000); V_CUSTOMER_NAME VARCHAR2(100); V_MANUFACTURER VARCHAR2(50); V_PRODUCT_NAME VARCHAR2(50); V_QUANTITY NUMBER(10); V_REQ_SHIP_DATE DATE; V_REQ_PRICE NUMBER(10); V_LOG_FILE utl_file.file_type; V_COUNT_CUST NUMBER; V_COUNT_PROD NUMBER; v_start_pos number := 1; v_end_pos number; BEGIN DBMS_OUTPUT.PUT_LINE('Inside begin 1'); v_file_type := UTL_FILE.fopen(FILE_PATH, FILE_NAME, 'r',null); DBMS_OUTPUT.PUT_LINE('Inside begin 1.1'); LOOP BEGIN DBMS_OUTPUT.PUT_LINE('Inside begin 2'); UTL_FILE.GET_LINE (v_file_type,v_buffer); DBMS_OUTPUT.PUT_LINE('Inside begin 2.1'); select instr('v_buffer',' ', 1, 1) - 1 --into v_end_pos from dual; select substr('v_buffer', 1, 7) --into V_CUSTOMER_NAME from dual; select instr('v_buffer', ' ', 31, 2)-1 --into v_end_pos from dual; select trim(substr('v_buffer', 28, 43)) --into V_MANUFACTURER from dual; select instr('v_buffer', ' ', 45, 1) - 1 --into v_end_pos from dual; select trim(substr('v_buffer', 44, 45)) --into V_PRODUCT_NAME from dual; V_LOG_FILE := UTL_FILE.FOPEN(FILE_PATH, 'LOG_FILE.dat', 'A'); IF (V_QUANTITY > 0) THEN SELECT COUNT (*) INTO V_COUNT_CUST FROM CONVERSION_CUSTOMERS WHERE CUSTOMER_NAME = V_CUSTOMER_NAME; IF(V_COUNT_CUST > 0) THEN SELECT COUNT(*) INTO V_COUNT_PROD FROM conversion_products WHERE PRODUCT_NAME = V_PRODUCT_NAME; IF(V_COUNT_PROD >0) THEN INSERT INTO XXCTS_ORDER_DETAILS_STG VALUES (V_CUSTOMER_NAME, V_PRODUCT_NAME, V_MANUFACTURER, V_QUANTITY, V_REQ_SHIP_DATE, V_REQ_PRICE, 'ACTIVE', 'ORDER TAKEN'); ELSE DBMS_OUTPUT.PUT_LINE('PRODUCT SHOULD BE VALID'); UTL_FILE.PUT_LINE(V_LOG_FILE, 'PRODUCT SHOULD BE VALID'); END IF; ELSE DBMS_OUTPUT.PUT_LINE('CUSTOMER SHOULD BE VALID'); UTL_FILE.PUT_LINE(V_LOG_FILE, 'CUSTOMER SHOULD BE VALID'); END IF; ELSE DBMS_OUTPUT.PUT_LINE('QUANTITY SHOULD BE VALID'); UTL_FILE.PUT_LINE(V_LOG_FILE, 'QUANTITY SHOULD BE VALID'); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN EXIT; END; END LOOP; END; /
It would be great if someone can tell me how to extract the three fields in the flat file.
Thank you
RomaricRomaric,
Why you use v_end_pos to trim spaces when you know the beginning and end of all columns positions?
I do not see the code when you check out the values of other 3 columns (Qty, Date & price).You can use substr underneath rather do SELECT each time.
V_CUSTOMER_NAME := SUBSTR(v_buffer,1,30); V_MANUFACTURER := SUBSTR(v_buffer,31,70); V_PRODUCT_NAME := SUBSTR(v_buffer,71,90); V_QTY := SUBSTR(v_buffer,91,95); V_SHIP_DATE := SUBSTR(v_buffer,96,115); V_PRICE := SUBSTR(v_buffer,116,120);
-Raj
-
Where can I submit my academic identification (PDF) - student/Europe. Can't find it. No link, no useful mail, no search results.
Hello
Please see the below help documents for help:
Adobe for creative education Cloud FAQ
Hope that answers your query!
-
OBIEE 11 g - Can we use variable presentation for results not
Hi all
I have a prompt on the dashboard called Department, and there only 3 values
HUMAN RESOURCES
Finance
Marketing
What I want to do, is that if users select HR to the guest and if the report is not all data for HR, I want to show a message
There is no data for HR in the report and even there is no data for finance in this report
I thought I'd take the HR in the presentation variable and using them in the results display no. Is this possible? Is there another way to do this?
Thank you
RonnyRonny says:
Thanks David, that was helpful. But guess that's not possible when I have 100 values for the Department.
No other way to do this?-Ronny
Hey, Ronny.
The solution I gave you was based on the command prompt "only has 3 values." Of course, with values of 100, this method becomes impracticable. Can not think of anything that will give you exactly what you want. I'm sorry.
-
BLOB data in the directory using UTL_FILE
Hi all
"I wrote a procedure to store BLOB data in the directory using * UTL_FILE.
Using the package UTL_FILE, I created procedure below. Procedure runs successfully without any error, but the file is not written to the directory. Pls find my procedure below.
* CREATE OR REPLACE PROCEDURE Write_BLOB_To_File
AS
v_lob_loc BLOB;
v_buffer RAW (32767).
v_buffer_size directory.
v_amount directory.
v_offset Number (38): = 1;
v_chunksize INTEGER.
v_out_file UTL_FILE. TYPE_DE_FICHIER;
BEGIN
-- | SELECT THE LOB LOCATOR
SELECT an attachment
IN v_lob_loc
ATTACHMENT
WHERE attachment_id = 720;
-- | DISCOVER THE CHUNKSIZE FOR THAT LOB COLUMN
v_chunksize: = DBMS_LOB. GETCHUNKSIZE (v_lob_loc);
IF (v_chunksize < 32767) CAN
v_buffer_size: = v_chunksize;
ON THE OTHER
v_buffer_size: = 32767;
END IF;
v_amount: = v_buffer_size;
-- | OPENING A LOB IS OPTIONAL
DBMS_LOB. OPEN (v_lob_loc, DBMS_LOB. LOB_READONLY);
-- | WRITE THE CONTENT OF A LOB IN A FILE
v_out_file: = UTL_FILE. FOPEN)
location = > "EXAMPLE_LOB_DIR"
filename = > "Test.doc."
OPEN_MODE = > 'w ',.
max_linesize = > 32767);
While v_amount > = v_buffer_size
LOOP
DBMS_LOB. READ)
lob_loc = > v_lob_loc,
amount = > v_amount,
offset = > v_offset,
buffer = > v_buffer);
v_offset: = v_offset + v_amount;
UTL_FILE. () PUT_RAW
file = > v_out_file,
buffer = > v_buffer,
AutoFlush = > true);
UTL_FILE. FFLUSH (file = > v_out_file);
-UTL_FILE. NEW_LINE (file = > v_out_file);
END LOOP;
UTL_FILE. FFLUSH (file = > v_out_file);
UTL_FILE. FCLOSE (v_out_file);
-- | THE LOB OF CLOSING IS REQUIRED IF YOU OPENED IT
DBMS_LOB. Close (v_lob_loc);
END; *
I have provided the necessary privileges for the schema and directory. But the file is not written to the directory. can you please advise meOPEN_MODE-online 'w' change to open_mode-online "wb."
-
Writing a file on the network using UTL_FILE
Hi all
Can we write a file on a path to the network using UTL_FILE. I have full access on the network folder, which I use as directory object.
Details of the environment:
Oracle Database 10g XE
WIN XP
Concerning
SISSMON wrote:
but I remember not so utl_file works with UNC paths or not, just try it & see!To do this, if the account that runs the writing has permissions to the destination. We use UNC paths in some of our environments.
-
Download the data using UTL_FILE
Hi all
I want to load data into the table of flat file and do not want to use SQL Loader. Can any body explain to me how this could be done using UTL_FILE. And something important I want to not all the columns in the file, I need specific columns.
Is it possible to bulk operation for downloading data such that it will be faster compared to line-by-line reading and the same insertion If yes how?
Thanks in advance...
Kind regards
DhabasSo they pay a lot of money for features of the Oracle DBMS only to code them again on their own? Weird, but are not uncommon.
If they don't want to use SQL Loader, you might be lucky to ask them if they want to use external tables. As with utl_file, you read access on the server but simply set the table once and then you can do a select on it.
How to create http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/tables.htm#i1007424
If you have different file names you can change the definition accordingly Re: question of external table -
What you try to do with utl_file will mutliply your efforts.
-Open the file
-loop
-Read the line
-cut out the delimiter string and assign each value to a variable
-end of loop
-close fileInstead of
-bulk collect in the external table collectionConcerning
Marcus -
How to: 8315793 - keyboard use to reduce the results area
Hello
I saw the request for implementation: "8315793 - keyboard use to reduce the results area" in section 2.1.1 but I can't find even in the list of shortcut keys.
What is the keyboard shortcut for this...?
Thanks, JürgenSee request "Hotkey to show/hide the grid result" = How has been implemented 2.1.1?
Have fun
K.
Maybe you are looking for
-
Engineering traffic graphic counter - iphone ios 10.0.1 problem 6 s
Help, please The graph of traffic in IOS 10.0.1 meter is broken and not recognized. Y at - it an update for this application?
-
I can't connect to MRU with rights of admiministrator and I don't know how to rebuild a disk volume. in raid 5. Help, please? Lenovo D20 + mru windows seven + 1.2.0.12 + 88SE63/64 marvel
-
Sent Sapce command of windows taskbar
Hello I want to know if it is possible to send a coammand of the space bar for a different task Windows? The reason is: I have a spectrometer software that is expected for the SPACEBAR action start the measurement and I want to use it to synchronize
-
Windows crashed. got a repair, but want to activate still allow me to windows (bad planning) but does not connect to internet via lan? And I'm in Thailand and website is in thai, but used to be called the USA... somewhere, there should be a support c
-
Problems with the Neo-V via CCP update
Hey guys,. I have problems with the update of my neo via CCP v... When I start the update everything is ok... step 2 CCP told me: "components and software can not be installed or launched." Relocation of the CCP has not solved the problem... pls help