Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plsql 您可以看到最大字符串长度为10000字节/字符。您应该使用允许任意长字符串的clob,而不是varchar2。谢谢您的回答是正确的 LINE141: lv_table := lv_table || lv_temp; begin BPC_S_Plsql_Oracle9i - Fatal编程技术网

Plsql 您可以看到最大字符串长度为10000字节/字符。您应该使用允许任意长字符串的clob,而不是varchar2。谢谢您的回答是正确的 LINE141: lv_table := lv_table || lv_temp; begin BPC_S

Plsql 您可以看到最大字符串长度为10000字节/字符。您应该使用允许任意长字符串的clob,而不是varchar2。谢谢您的回答是正确的 LINE141: lv_table := lv_table || lv_temp; begin BPC_S,plsql,oracle9i,Plsql,Oracle9i,您可以看到最大字符串长度为10000字节/字符。您应该使用允许任意长字符串的clob,而不是varchar2。谢谢您的回答是正确的 LINE141: lv_table := lv_table || lv_temp; begin BPC_SEND_CUST_OBJ_CHOUT_EMAIL; end; procedure BPC_SEND_CUST_OBJ_CHOUT_EMAIL AS l_html VARCHAR2(200); ln_indx number


您可以看到最大字符串长度为10000字节/字符。您应该使用允许任意长字符串的
clob
,而不是
varchar2
。谢谢您的回答是正确的
LINE141:        lv_table := lv_table || lv_temp;
begin
 BPC_SEND_CUST_OBJ_CHOUT_EMAIL;
end;
procedure BPC_SEND_CUST_OBJ_CHOUT_EMAIL AS
    l_html VARCHAR2(200);   
    ln_indx number;

    Cursor CR_CUST_CH_OBJ IS
            select 
            V_REQUESTOR col1,
            V_SOURCE_NAME col2,
            (select distinct V_DESC from AAAA_OBJECT_TYPE xx where xx.V_TYPE = a.V_TYPE and xx.v_status = 'A') col3,
            V_CUST_NAME col4,
            V_CUST_REF_NO col5,
            D_REQUEST col6,
            D_request + v_duration col7,
            round(sysdate - (D_request + v_duration))||' days'  col8 ,
            (select V_EMAIL_ID from AAAA_CUST_USERS  where V_USER_NAME = V_REQUESTOR   ) col9,
            '' col10,
            (select V_STATUS from AAAA_CUST_USERS  where V_USER_NAME = V_REQUESTOR   ) col11
    from    AAAA_SOURCE_TRACK a, AAAA_CUSTOMER b
    where
            D_REQUEST > to_date('01/01/2010','DD/MM/YYYY')
            and a.V_CUST_CODE =   b.V_CUST_CODE
            and V_REFERENCE is not null
            and D_RECEIVED is Null
            and D_APPROVED is null
            and a.V_STATUS ='CHECKOUT'  --and b.v_status = 'A'
            and a.D_request + a.v_duration < sysdate
    order by V_CUST_NAME,V_REQUESTOR;                                                                   


    to_array  array_a := array_a();
    cc_array  array_a := array_a();
    v_date varchar2(200);
    v_subject varchar2(400);
    D_DATE DATE;     

    lv_title varchar2(400);
    lv_body_msg varchar2(1000);
    lv_table varchar2(10000);
    lv_cust_name varchar2(150);
    ln_index number;  
    lv_email_txt varchar2(32767); 
    lv_fake_emailLst varchar2(2000);
    lv_temp varchar2(1000);

BEGIN
    ln_index := 0; 

    lv_table := '';

    D_DATE := add_months(sysdate,-1);--TO_DATE('01-04-2014','DD-MM-YYYY');
    v_date :=  TO_CHAR(D_DATE,'YYYY-MM');
    v_subject := 'subject text from '||to_char(add_months(sysdate,'-12'),'MONTHYYYY') ||' to '|| to_char(sysdate, 'MONTHYYYY') ;

    to_array.extend(1);
    to_array(1):='aaaa@bbbb.com';



    l_html := '<html> <head> <title>Title</title>   </head>  <body style="font:''Segoe UI''; font-size:14px">'; 

    lv_body_msg := '<p>msg1 <br />';
    lv_body_msg := lv_body_msg ||'msg2<br />';
    lv_body_msg := lv_body_msg ||'msg3<br />';

    lv_table := '<table border="1"  cellpadding="0" style="font:''Segoe UI''; font-size:12px"><b>
                    <TR align="center"><TH colspan="9" bgcolor="#FF0000" style="color:white" scope="col">List of objects locked</TH></TR>
                    <TR align="center" bgcolor="#FFFF00" >
                        <TD>Requestor</TD>
                        <TD>Source Name</TD>
                        <TD>Type</TD>
                        <TD>Customer  Name</TD>
                        <TD>Customer Ref No</TD>
                        <TD>Request date</TD>
                        <TD>Date of return object</TD>
                        <TD>Delay</TD>
                        <TD>Requestor Remark</TD>
                    </TR>
                    </b>';            

    lv_title := 'Dear ';

    FOR RI IN CR_CUST_CH_OBJ
    LOOP  
        IF ln_index = 0 THEN
              lv_cust_name := RI.col4;
        END IF;

        IF lv_cust_name != RI.col4 THEN   

            lv_email_txt := l_html ||lv_fake_emailLst||'<br /><br />'|| lv_title||'<br /><br />'|| lv_body_msg ||lv_table ||  '</table><br/><br/>' ;
            lv_email_txt := lv_email_txt || '<p style="color:red; font-style:italic"> ** This email is auto generated by FMS server. ('||sysdate||')</p>';
            lv_email_txt:= lv_email_txt || '</body>  </html>';  

            BPC_HTML_EMAIL( p_from      => 'cccc@bbbb.com',
                            p_subject   => v_subject || lv_cust_name,
                            p_text_msg  => 'This email is in HTML format. Please enable HTML format.',
                            p_html_msg  => lv_email_txt,
                            p_smtp_host => '100.10.10.201',
                            p_to_recipients => to_array,
                            p_cc_recipients => cc_array);

            lv_cust_name := RI.col4;   

                lv_table := '<table border="1"  cellpadding="0" style="font:''Segoe UI''; font-size:12px"><b>
                <tr align="center"><th colspan="9" bgcolor="#FF0000" style="color:white" scope="col">List of objects locked</th></tr>
                <TR align="center" bgcolor="#FFFF00" >
                    <TD>Requestor</TD>
                    <TD>Source Name</TD>
                    <TD>Type</TD>
                    <TD>Customer  Name</TD>
                    <TD>Customer Ref No</TD>
                    <TD>Request date</TD>
                    <TD>Date of return object</TD>
                    <TD>Delay</TD>
                    <TD>Requestor Remark</TD>
                </TR>
                </b>';            

                lv_title := 'Dear ';            
        END IF ;       


        lv_temp := '<TR><TD>'||RI.col1||'</TD>
                            <TD>'||RI.col2||'</TD>
                            <TD>'||RI.col3||'</TD>
                            <TD>'||RI.col4||'</TD>
                            <TD>'||RI.col5||'</TD>
                            <TD>'||RI.col6||'</TD>
                            <TD>'||RI.col7||'</TD>
                            <TD>'||RI.col8||'</TD>
                            <TD>'||RI.col10||'</TD>
                    </TR>';   
LINE141:        lv_table := lv_table || lv_temp;                                  
        --dbms_output.put_line(lv_temp) ;
        --to_array.extend(1);
        --to_array(ln_indx) := RI.col9;    
        ln_index := ln_index + 1;

        IF(INSTR(lv_title ,RI.col1) =0) THEN
            lv_title := lv_title || RI.col1 ||', ';
            lv_fake_emailLst := lv_fake_emailLst || RI.col9 ||',';

        END IF;
    END LOOP;

END;
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
declare
  l_string varchar2(10000);
begin
  for i in 1..10001 loop
    l_string := l_string || 'x';
  end loop;
end;
declare
  l_string varchar2(10000);
begin
  for i in 1..10001 loop
    l_string := l_string || 'x';
  end loop;
end;
Error at line 1
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 5
if coalesce(length(lv_table),0)+coalesce(length(lv_temp),0) <= 10000 then
  lv_table := lv_table || lv_temp;   
else
  ... do something else here that won't lead to a crash
end if;