变量'v_date_extraction'的引用无效

时间:2014-06-24 15:10:16

标签: oracle validation date plsql

CREATE OR REPLACE PROCEDURE bcy_genera_file_cedacri_G2 (p_errbuff OUT VARCHAR2, p_errcode OUT NUMBER, p_data_lancio IN date, p_directory IN VARCHAR2) is

    file_csv  utl_file.file_type; 
    v_src_file BFILE;  
    v_content BLOB; 
    g_application  varchar2(3) := 'OIC';
    g_ambient    varchar2(4) := 'TEST'; 

    g_ret_code_exception_value   number  := 2;
    g_ret_code_exception   number  := 0;

    v_date_extraction  varchar2(15); --yyyymmddhhMM ..

    creazione_file_except exception;

    v_p_date_launching  date;

    cursor cur_csv is
    SELECT  flag_pubblicato, data_pubblicazione
    FROM   XXBCYIN.bcy_supporto_garante_2 bsg2;

BEGIN


      v_date_extraction:= to_char (nvl(p_date_launching, sysdate), 'yyyymmddhhMM');


    BEGIN



      --to create file csv

        file_csv := utl_file.fopen ('p_directory', 'GARANTE2||g_application||g_ambient||v_date_extraction.csv', 'W');      

     FOR  r  IN  cur_csv

        LOOP
            utl_file.put_line (
             file_csv,
             --cur_csv.ID || ';' ||
             --cur_csv.TRX_TYPE || ';' || 
             'USER_ID' || ';' ||
             'USERNAME' || ';' ||
             'DOMINIO' || ';' ||
             'TIMESTAMP' || ',' ||
             'CODICE_POSTAZIONE_1' || ';' ||
             'CODICE_POSTAZIONE_2' || ';' ||
             'CODICE_POSTAZIONE_3' || ';' ||
             'CODICE_POSTAZIONE_4' || ';' ||
             'CODICE_POSTAZIONE_5'|| ';' ||
              'NDG_CLIENTE' || ';' ||
              'CODICE_SERVIZIO' || ';' ||
              'CODICE_ABI' || ';' ||
             'CODICE_ISTITUTO' || ';' ||
             'CODICE_CAB_OPERATORE' || ';' ||
              'CODICE_OPERATORE' || ';' ||)

       END LOOP; 


        utl_file.fclose (file_csv);


      v_src_file:= 'GARANTE2'||g_application||g_ambient||v_date_extraction.csv;     

在最后一行我收到错误: PLS-00487无效引用变量' v_date_extraction'。 此变量已定义 v_date_extraction:= to_char(nvl(p_date_launching,sysdate),' yyyymmddhhMM');

其中v_date_extraction是varchar2,p_data_lancio和sysdate是日期。这可能是问题吗?

1 个答案:

答案 0 :(得分:0)

问题似乎是你没有在引号中加上“.csv”。我认为提出错误的一行应该是:

v_src_file:= 'GARANTE2'||g_application||g_ambient||v_date_extraction||'.csv';