【问题标题】:Invalid reference of variable 'v_date_extraction'变量“v_date_extraction”的引用无效
【发布时间】:2014-06-24 15:10:16
【问题描述】:
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 是日期。这可能是问题所在?

【问题讨论】:

    标签: oracle validation date plsql


    【解决方案1】:

    问题似乎是您未能将“.csv”放在引号中。我相信引发错误的那一行应该是:

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

    【讨论】:

    • 如果我:v_src_file:= 'GARANTE2||g_applicazione||g_ambiente||v_data_estrazione.csv';我有错误 PLS-00382 表达式是错误的类型
    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2018-10-18
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多