Wwv_flow_global.vc_arr2?

Greetings,
It's been requested that I develop an application that uploads a .csv spreadsheet into an Oracle table. I found Vikas's example -
Re: Loading a CSV file into a table
and, have downloaded it and have it working. It helps tons, because without something like that as a 'springboard' I would never be able to develop a file upload application.
But, I need to modify it and am a newbie PL/SQL developer. Anyway... I'm trying to get my mind wrapped around the packages used (so I have an idea of what they do and what I need to change) and I see wwv_flow_global.vc_arr2 referenced in several places in the code. I then did some additional research and found that it is associated with a PL/SQL table. But, I still don't understand what it does, or how it works.
Would someone explain to me what wwv_flow_global. vc_arr2 does? For instance, what happens to information that is loaded into it?
Any help is appreciated. I feel like a ball lost in high weeds! :-)
Thanks, Tony

Hi Scott,
(I aplogize for the delayed response, but I was out for the holidays.)
There's a link to the application and package I'm referring to in this thread -
Loading a CSV file into a table
The application isn't very large, but the package is. If you're still willing, and have time, to help me I don't know how best to share the code with you. Since the application is on your server maybe it's best if you view it there. Let me know. I don't mind copying lines of code in a thread message, but it will probably be lengthy.
Maybe knowing what I'm needing will help. I need to create an Apex application to import a .csv worksheet into a specific Oracle table. So, I don't need all the functionality that Vikas's application has. I don't need to create the table, nor the table columns.
I was hoping I could take Vikas's application and simply remove certain sections and slightly change a few others. But, I obviously don't understand the code well enough to do even that. Or, even know if it's as easy as I think it may be. So, I guess I need to answer that question first.
Any help you can provide is greatly appreciated. And, I'll do anything I can to help you help me.
Thanks, Tony

Similar Messages

  • Upload data from excel into database through pl/sql

    Hi All,
    I have excel which contains data lets say employee details,
    I have one upload button ,which is used to upload excel and then i want to map the cell of excel to the database column and through plsql code i want to upload the excel data into database.
    In short ,i want to upload the data from excel into database using plsql code,
    or suggest me any other way to do this.(except the data load method present in apex)
    Thanks,
    Jitendra

    if you use APEX 4 you can define you own table
    the code below is for APEX 3
    PROCEDURE pro_carga_planilla_prosp( p_archivo VARCHAR2) IS
    v_blob_data BLOB;
    v_blob_len NUMBER;
    v_position NUMBER;
    v_raw_chunk RAW(10000);
    v_char CHAR(1);
    c_chunk_len number := 1;
    v_line VARCHAR2 (32767) := NULL;
    v_data_array wwv_flow_global.vc_arr2;
    v_rows number;
    v_sr_no number := 1;
    v_ok boolean := true;
    v_local_ok BOOLEAN := TRUE;
    v_reg_ok NUMBER := 0;
    v_reg_ko NUMBER := 0;
    v_localidad_id NUMBER;
    v_departamento_id NUMBER;
    v_cargo_id NUMBER;
    v_prospecto_id NUMBER;
    v_asesor_id NUMBER;
    V_REG prospectos%rowtype;
    BEGIN
    -- Read data from wwv_flow_files</span>
    select blob_content into v_blob_data
    from wwv_flow_files
    where name= p_archivo;
    v_blob_len := dbms_lob.getlength(v_blob_data);
    v_position := 1;
    -- Read and convert binary to char</span>
    WHILE ( v_position <= v_blob_len ) LOOP
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position);
    v_char := chr(hex_to_decimal(rawtohex(v_raw_chunk)));
    v_line := v_line || v_char;
    -- pro_log('linea '||v_line);
    v_position := v_position + c_chunk_len;
    -- When a whole line is retrieved </span>
    IF v_char = CHR(10) THEN
    -- Convert comma to : to use wwv_flow_utilities </span>
    v_line := replace(REPLACE (v_line, ',', ':'), ';',':');
    v_line := replace(replace(v_line, chr(10)),chr(13));
    if substr(v_line,1,1)= ':' then
    v_line := '0'||v_line;
    end if;
    if instr(v_line,':',1,21) = 0 then
    if instr(v_line,':',1,20) = 0 then
    v_line:=v_line||':';
    end if;
    v_line:=v_line||':';
    end if;
    -- pro_log(v_line);
    -- Convert each column separated by : into array of data </span>
    v_data_array := wwv_flow_utilities.string_to_table (v_line);
    -- Insert data into target table </span>
    IF v_data_array(1) IS NOT NULL AND
    v_sr_no <> 1 THEN
    V_REG.NOMBRE:=ltrim(rtrim(v_data_array(2)));
    V_REG.RAZON_SOCIAL:=v_data_array(3);
    V_REG.DIRECCION := v_data_array(4)||' '||v_data_array(5);
    -- PRO_LOG('PROSP 1 ' ||v_sr_no);
    v_localidad_id := pack_empresas.get_localidad(v_data_array(6));
    -- PRO_LOG('PROSP 1.1 '||v_sr_no);
    V_REG.LOCALIDAD_ID:=v_localidad_id;
    -- PRO_LOG('PROSP 1.2 '||v_sr_no);
    V_REG.CODIGO_POSTAL:=LTRIM(RTRIM(v_data_array(7)) );
    -- PRO_LOG('PROSP 1.3 '||v_sr_no);
    -- PRO_LOG('PROSP 1.1 '||v_sr_no);
    v_departamento_id := pack_empresas.get_departamento(v_data_array(8));
    -- PRO_LOG('PROSP 1.4 '||v_sr_no);
    V_REG.DEPARTAMENTO_ID:=v_departamento_id;
    -- PRO_LOG('PROSP 1.5 '||v_sr_no);
    V_REG.TELEFONO:=v_data_array(9);
    --PRO_LOG('PROSP 1.6 '||v_sr_no);
    V_REG.TELEFONO2:=v_data_array(10);
    -- PRO_LOG('PROSP 1.7 '||v_sr_no);
    V_REG.RUBRO:=v_data_array(11);
    -- PRO_LOG('PROSP 1.8 '||v_sr_no);
    V_REG.RUC:=ltrim(rtrim(v_data_array(12)));
    -- PRO_LOG('PROSP 1.9 '||v_sr_no);
    -- pro_log(v_data_array(1));
    -- pro_log(v_data_array(2));
    V_REG.CANTIDAD_EMPLEADOS:=RTRIM(LTRIM(v_data_array(13)));
    -- PRO_LOG('PROSP 1.10 '||v_sr_no);
    -- pro_log(v_data_array(14));
    V_REG.CANTIDAD_BENEFICIARIOS:=RTRIM(LTRIM(v_data_array(14)));
    --PRO_LOG('PROSP 1.11 '||v_sr_no);
    V_REG.MAIL:=v_data_array(19);
    -- pro_log(V_REG.MAIL);
    -- PRO_LOG('PROSP 1.12 '||v_sr_no);
    -- v_data_array(20):= replace(replace(v_data_array(20),chr(10)),chr(13));
    if not v_data_array.exists(20) then
    -- pro_log('existe');
    -- pro_log(ltrim(rtrim(replace(replace(v_data_array(20),chr(10)),chr(13)))));
    V_REG.Proveedor:= ltrim(rtrim(replace(replace(v_data_array(20),chr(10)),chr(13))));
    else
    v_data_array(20):=null;
    end if;
    -- V_REG.PROVEEDOR:=v_data_array(20);
    -- PRO_LOG('PROSP 1.13 '||v_sr_no);
    if not v_data_array.exists(21) then
    V_REG.OBSERVACIONES:=v_data_array(21);
    else
    v_data_array(21):=null;
    end if;
    -- PRO_LOG('PROSP 1.14 '||v_sr_no);
    -- PRO_LOG('PROSP 1.2 '||v_sr_no);
    insert into prospectos (nombre,razon_social, direccion,localidad_id,codigo_postal,
    departamento_id, telefono, telefono2, rubro,ruc,cantidad_empleados,
    cantidad_beneficiarios,mail,proveedor,observaciones)
    values (nvl(ltrim(rtrim(v_data_array(2))),v_data_array(3)), v_data_array(3),
    v_data_array(4)||' '||v_data_array(5),
    v_localidad_id, LTRIM(RTRIM(v_data_array(7))),v_departamento_id, v_data_array(9),
    v_data_array(10),v_data_array(11), ltrim(rtrim(v_data_array(12))), RTRIM(LTRIM(v_data_array(13))),
    RTRIM(LTRIM(v_data_array(14))),v_data_array(19),v_data_array(20), v_data_array(21))
    returning prospecto_id INTO v_prospecto_id;
    -- PRO_LOG('PROSP 2');
    v_cargo_id := pack_empresas.get_cargo(v_data_array(17));
    -- PRO_LOG('PROSP 3');
    insert into prospecto_contactos (prospecto_id,nombre,apellido,cargo_id,
    telefono,mail)
    values (v_prospecto_id, nvl(v_data_array(15),'S/N'), nvl(v_data_array(16),'S/A'),
    v_cargo_id, v_data_array(18), v_data_array(19));
    -- PRO_LOG('PROSP 4');
    v_asesor_id := pack_empresas.get_asesor(v_data_array(1));
    -- PRO_LOG('PROSP 5');
    insert into asignaciones (prospecto_id,asesor_id,fecha_asignacion)
    values (v_prospecto_id, v_asesor_id, trunc(sysdate));
    -- PRO_LOG('PROSP 6');
    END IF;
    -- Clear out
    v_line := NULL;
    v_sr_no := v_sr_no + 1;
    END IF;
    END LOOP;
    delete wwv_flow_files
    where name= p_archivo;
    END pro_carga_planilla_prosp;
    function hex_to_decimal
    --this function is based on one by Connor McDonald
    --http://www.jlcomp.demon.co.uk/faq/base_convert.html
    ( p_hex_str in varchar2 ) return number
    is
    v_dec number;
    v_hex varchar2(16) := '0123456789ABCDEF';
    begin
    v_dec := 0;
    for indx in 1 .. length(p_hex_str)
    loop
    v_dec := v_dec * 16 + instr(v_hex,upper(substr(p_hex_str,indx,1)))-1;
    end loop;
    return v_dec;
    end hex_to_decimal;

  • Retrieving multiselect values from database

    Hi,
    I have a multiselect list of companies names for a user.
    An application user can belong to one or more company. The application user gets to see data in the application based on the company/companies that he belongs to.
    When a user belongs to more than one company the company is saved in the database as example :013:113 for a user.
    I have written a function which retrieves the company code of a user. This function is then called in my codes in apex to restrict the data the user can see.
    create or replace
    function get_company_code (p_usr_name in fus_users.usersname%type)
    return t_com_table
    is
      -- Cursor to get the company for a user
      cursor c_usr2 (b_usr_name in fus_users.username%type) is
        select usr.mdr_com_code
        from   fus_users  usr
        where  upper(usr.username) in upper(b_usr_name)
      cursor c_usr1 (b_usr_name in fus_users.username%type) is
        select distinct mdr.com_code
        from   fus_medewerkers  mdr
       cursor c_usr (b_usr_name in fus_users.username%type) is
        select usr.super_admin
        from   fus_users  usr
        where  upper(usr.username) in upper(b_usr_name)
      l_retval t_com_table;
      l_super_admin t_sup_admin_table;
      begin
        for r_usr in c_usr(b_usr_name => p_usr_name)
        loop
        if r_usr.super_admin is not null then
         open  c_usr1(b_usr_name => p_usr_name);
         fetch c_usr1 bulk collect into l_retval;
         close c_usr1;
        else
         open  c_usr2(b_usr_name => p_usr_name);
         fetch c_usr2 bulk collect into l_retval;
         close c_usr2;
        end if;
        end loop;
        return l_retval;
      end get_company_code; The code works fine when a user belongs to one company.
    How do i get the companies code in my type as rows when a user belongs to more than one company?
    Regards,
    Diana

    Hi Varad and Kofi,
    I finally got my code working :)
    create or replace
    function get_company_code (p_usr_name in fus_users.username%type)
    return t_com_table pipelined
    is
      l_com_code varchar2(50);
      l_tab wwv_flow_global.vc_arr2;
      type type_coll_com_code is table of varchar2(5);
      t_com_code type_coll_com_code;
      -- Cursor to get the company for a not super_admin user
      cursor c_usr2 (b_usr_name in fus_users.username%type) is
        select usr.mdr_com_code
        from   fus_users  usr
        where  upper(usr.username) in upper(b_usr_name)
    -- Cursor to get the company for a super_admin user
      cursor c_usr1 (b_usr_name in fus_users.username%type) is
        select  distinct mdr.com_code
        from   fus_medewerkers  mdr
      -- Cursor to get super_admin
       cursor c_usr (b_usr_name in fus_users.username%type) is
        select usr.super_admin
        from   fus_users  usr
        where  upper(usr.username) in upper(b_usr_name)
      begin
        for r_usr in c_usr(b_usr_name => p_usr_name)
        loop
        if r_usr.super_admin is not null then
         open  c_usr1(b_usr_name => p_usr_name);
         fetch c_usr1  bulk collect
         into t_com_code ;
         close c_usr1;
         for i in 1..t_com_code.count loop
         pipe row (t_com_code(i));
         end loop;
        else
         open  c_usr2(b_usr_name => p_usr_name);
         fetch c_usr2  into l_com_code;
         l_tab:= apex_util.string_to_table(l_com_code); 
         close c_usr2;
         for i in l_tab.first..l_tab.last loop
         pipe row (trim(l_tab(i)));
         end loop;
        end if;
        end loop;
        return ;
      end get_company_code; Thanks for the help.
    Diana
    Edited by: dianap on Sep 21, 2009 9:42 AM

  • Login from ebs to apex directly .

    Hi All,
    I have been using the Cabot consulting paper for login to apex from ebs directly .
    i placed the following code as onload process
    BEGIN
    wfa_sec.getsession(:P101_USERNAME);
    :P101_PASSWORD :=
    XXAPX_SECURITY_PKG.generate_hash
    (FND_GLOBAL.user_name);
    IF :P101_PASSWORD IS NOT NULL THEN
    APEX_CUSTOM_AUTH.login(
    P_UNAME => :P101_USERNAME,
    P_PASSWORD => :P101_PASSWORD,
    P_SESSION_ID => v('APP_SESSION'),
    P_APP_PAGE => :APP_ID||':1'
    END IF;
    EXCEPTION WHEN OTHERS THEN NULL;
    END;
    But the wfa_sec.getsession(:P101_USERNAME); is not working properly , its redirecting me to ERP home page .
    Kindly! help me.
    Regards,
    Nandini Thakur.

    This is how we do it...
    1) Call a function from apps, passing in the app number and page separated by a pipe symbol:
      PROCEDURE launch_application(app_page IN VARCHAR2)
      IS
        l_url          VARCHAR2(256);
        l_page         NUMBER;
        c              OWA_COOKIE.cookie;
        l_application  NUMBER;
      BEGIN
        l_application  := TO_NUMBER(SUBSTR(app_page, 1, INSTR(app_page, '|') - 1));
        l_page         := TO_NUMBER(SUBSTR(app_page, INSTR(app_page, '|') + 1));
        OWA_UTIL.mime_header('text/html', FALSE);
        OWA_COOKIE.send(
          name     => 'APEX_EBS_' || l_application,
          VALUE    =>   fnd_global.user_name
                     || ':'
                     || generate_hash(fnd_global.user_name)
                     || ':'
                     || fnd_global.user_id
                     || ':'
                     || fnd_global.resp_id
                     || ':'
                     || fnd_global.resp_appl_id
                     || ':'
                     || fnd_global.resp_name
                     || ':'
                     || fnd_global.application_short_name,
          expires  => SYSDATE + 1 / (24 * 60 * 6), --Expire in 10 seconds
          PATH     => '/'
        l_url          :=
             fnd_profile.VALUE('APPS_FRAMEWORK_AGENT')
          || '/pls/apex/f?p='
          || l_application
          || ':'
          || l_page
          || '::LAUNCH';
        OWA_UTIL.redirect_url(l_url);
      END launch_application;Then the APEX login page has a on-header process:
    DECLARE
      c OWA_COOKIE.cookie;
      a wwv_flow_global.vc_arr2;
    BEGIN
      c:=OWA_COOKIE.get('APEX_EBS_'||:APP_ID);
      a:=apex_util.string_to_table(c.vals(1));
      :P101_USERNAME:=a(1);
      :P101_PASSWORD:=a(2);
      :GBL_USER_ID:=a(3);
      :GBL_RESP_ID:=a(4);
      :GBL_RESP_APPL_ID:=a(5);
      :GBL_RESP_NAME := a(6);
      :GBL_APPLICATION_SHORT_NAME:=a(7);
      wwv_flow_custom_auth_std.login(
        P_UNAME       => :P101_USERNAME,
        P_PASSWORD    => :P101_PASSWORD,
        P_SESSION_ID  => v('APP_SESSION'),
        P_FLOW_PAGE   => :APP_ID||':1'
      EXCEPTION WHEN OTHERS THEN NULL;
    END;We set up the globla variables you see above.
    We then have an authentication scheme which calls an authentication function:
    RETURN xxfnd_apps_to_apex_pk.authorise_userwhich looks like this:
      FUNCTION authorise_user(
        p_username  IN VARCHAR2,
        p_password  IN VARCHAR2
        RETURN BOOLEAN
      IS
      BEGIN
        IF fnd_web_sec.validate_login(p_username, p_password) = 'Y' --This part not really requried but kept in for compatibility
        OR validate_hash(p_username, p_password) THEN
          RETURN TRUE;
        ELSE
          RETURN FALSE;
        END IF;
      END;Our validate hash function is checking hashes over a period of time against the calculated hash. This means that the hash is only valid within 10 seconds of being generated - makes things more secure. We also use a salt value which is based on a hash of the apps password. You will have to chose what level of complexity to go into.
    Then we have a VPD entry in the APEX Application Security definition:
    BEGIN
        fnd_global.apps_initialize(NVL(:gbl_user_id,0),
                                 NVL(:gbl_resp_id,0),
                                 NVL(:gbl_resp_appl_id,0)
    END;This ensures that apps context is maintained throughout the application.

  • Multiselect list in APEX 3.2.1.00.12

    Hello,
    I'm having troubles with a multiselect list that could potentially return a very large result set. I have a function called 'GET_LIST' that basically calls the apex_util.STRING_TO_TABLE(p_string,p_delimiter); function since the multiselect list returns a colon delimited string. If I try to select all of the values on the list I get the following message:
    Bad Request
    The request could not be understood by server due to malformed syntax.Are there any known workarounds to this issue?
    Thanks in advance!
    ~Jake

    Do any pros out there have a suggestion for this? My multiselect list has over 35,000 entries in it for certain owners. It is doubtful that anyone would ever select them all but if they should happen to they would receive an error.
    The list of values (P10_ACCTS) is simply
    select a.account_name d, a.account_id v
               from accounts a
             where a.owner = :P10_OWNERI then display a report that uses the results of the select list in the where clause:
    and (account.id in (select column_value from table (GET_LIST(nvl(:P10_ACCTS,'::'))))GET_LIST is defined as:
    CREATE OR REPLACE FUNCTION GET_LIST (
       p_string      IN   VARCHAR2,
       p_delimiter   IN   VARCHAR2 DEFAULT ':'
       RETURN vc_array_1 PIPELINED
    IS
        l_string     varchar2(32000);
        l_array     wwv_flow_global.vc_arr2;
    BEGIN
       l_array := apex_util.STRING_TO_TABLE(p_string,p_delimiter);
       for i in l_array.first..l_array.last loop
          pipe row (trim(l_array(i)));
       end loop;
       return;
    end;I believe that my limitation is the 'l_string varchar2(32000);' I need (in some cases) to be able to pass over 100,000 characters. I've tried converting GET_LIST to use a clob instead of varchar2 but have yet to be successful in implementing that approach.
    THanks in advance!
    Edited by: jhammer on Oct 15, 2010 3:13 PM

  • Need help to fix the Procedure

    I found a procedure in the forum. I think Vikash posted this. I update and it is working for comma delimiter records but I want to work it for TAB delimiter. I edited many ways but no luck. If any body fix it, please help so.
    Thanks,
    Lubna
    create or replace PACKAGE htmldb_tools
    AS
    PROCEDURE parse_textarea (
    p_textarea IN VARCHAR2,
    p_collection_name IN VARCHAR2
    PROCEDURE parse_file(
    p_file_name IN VARCHAR2,
    p_collection_name IN VARCHAR2,
    p_headings_item IN VARCHAR2,
    p_columns_item IN VARCHAR2,
    p_ddl_item IN VARCHAR2,
    p_table_name IN VARCHAR2 DEFAULT NULL
    create or replace PACKAGE BODY htmldb_tools
    AS
    TYPE varchar2_t IS TABLE OF VARCHAR2(32767) INDEX BY binary_integer;
    PROCEDURE delete_collection (
    p_collection_name IN VARCHAR2
    IS
    BEGIN
    IF (htmldb_collection.collection_exists(p_collection_name))
    THEN
    htmldb_collection.delete_collection(p_collection_name);
    END IF;
    END delete_collection;
    PROCEDURE csv_to_array (
    p_csv_string IN VARCHAR2,
    p_array OUT wwv_flow_global.vc_arr2,
    p_separator IN VARCHAR2 := 'chr(09)'
    IS
    l_start_separator PLS_INTEGER := 0;
    l_stop_separator PLS_INTEGER := 0;
    l_length PLS_INTEGER := 0;
    l_idx BINARY_INTEGER := 0;
    l_quote_enclosed BOOLEAN := FALSE;
    l_offset PLS_INTEGER := 1;
    BEGIN
    l_length := NVL(LENGTH(p_csv_string),0);
    IF (l_length <= 0)
    THEN
    RETURN;
    END IF;
    LOOP
    l_idx := l_idx + 1;
    l_quote_enclosed := FALSE;
    IF SUBSTR(p_csv_string, l_start_separator + 1, 1) = '"'
    THEN
    l_quote_enclosed := TRUE;
    l_offset := 2;
    l_stop_separator := INSTR(p_csv_string, '"', l_start_separator + l_offset, 1);
    ELSE
    l_offset := 1;
    l_stop_separator := INSTR(p_csv_string, p_separator, l_start_separator + l_offset, 1);
    END IF;
    IF l_stop_separator = 0
    THEN
    l_stop_separator := l_length + 1;
    END IF;
    p_array(l_idx) := (SUBSTR(p_csv_string, l_start_separator + l_offset,(l_stop_separator - l_start_separator - l_offset)));
    EXIT WHEN l_stop_separator >= l_length;
    IF l_quote_enclosed
    THEN
    l_stop_separator := l_stop_separator + 1;
    END IF;
    l_start_separator := l_stop_separator;
    END LOOP;
    END csv_to_array; --}}}
    PROCEDURE get_records(p_blob IN blob,p_records OUT varchar2_t) --{{{
    IS
    l_record_separator VARCHAR2(2) := chr(13)||chr(10);
    l_last INTEGER;
    l_current INTEGER;
    BEGIN
    IF (NVL(dbms_lob.instr(p_blob,utl_raw.cast_to_raw(l_record_separator),1,1),0)=0)
    THEN
    l_record_separator := chr(10);
    END IF;
    l_last := 1;
    LOOP
    l_current := dbms_lob.instr( p_blob, utl_raw.cast_to_raw(l_record_separator), l_last, 1 );
    EXIT WHEN (nvl(l_current,0) = 0);
    p_records(p_records.count+1) := utl_raw.cast_to_varchar2(dbms_lob.substr(p_blob,l_current-l_last,l_last));
    l_last := l_current+length(l_record_separator);
    END LOOP;
    END get_records;
    PROCEDURE parse_textarea (
    p_textarea IN VARCHAR2,
    p_collection_name IN VARCHAR2
    IS
    l_index INTEGER;
    l_string VARCHAR2(32767) := TRANSLATE(p_textarea,chr(9)||chr(13)||chr(10)||' ,','@@@@');
    l_element VARCHAR2(100);
    BEGIN
    l_string := l_string||'@';
    htmldb_collection.create_or_truncate_collection(p_collection_name);
    LOOP
    l_index := instr(l_string,'@');
    EXIT WHEN NVL(l_index,0)=0;
    l_element := substr(l_string,1,l_index-1);
    IF (trim(l_element) IS NOT NULL)
    THEN
    htmldb_collection.add_member(p_collection_name,l_element);
    END IF;
    l_string := substr(l_string,l_index+1);
    END LOOP;
    END parse_textarea;
    PROCEDURE parse_file(
    p_file_name IN VARCHAR2,
    p_collection_name IN VARCHAR2,
    p_headings_item IN VARCHAR2,
    p_columns_item IN VARCHAR2,
    p_ddl_item IN VARCHAR2,
    p_table_name IN VARCHAR2 DEFAULT NULL
    IS
    l_blob blob;
    l_records varchar2_t;
    l_record wwv_flow_global.vc_arr2;
    l_datatypes wwv_flow_global.vc_arr2;
    l_headings VARCHAR2(4000);
    l_columns VARCHAR2(4000);
    l_seq_id NUMBER;
    l_num_columns INTEGER;
    l_ddl VARCHAR2(4000);
    BEGIN
    IF (p_table_name is not null)
    THEN
    l_ddl := 'insert into '||p_table_name||' '||
    'select '||v(p_columns_item)||' '||
    'from htmldb_collections '||
    'where seq_id > 0 and collection_name='''||p_collection_name||'''';
    htmldb_util.set_session_state('P149_DEBUG',v('P149_DEBUG')||'/'||l_ddl);
    execute immediate l_ddl;
    RETURN;
    END IF;
    BEGIN
    select blob_content into l_blob from wwv_flow_files
    where name=p_file_name;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    raise_application_error(-20000,'File not found, id='||p_file_name);
    END;
    get_records(l_blob,l_records);
    IF (l_records.count < 2)
    THEN
    raise_application_error(-20000,'File must have at least 3 ROWS, id='||p_file_name);
    END IF;
    htmldb_collection.create_or_truncate_collection(p_collection_name);
    csv_to_array(l_records(1),l_record);
    l_num_columns := l_record.count;
    if (l_num_columns > 900000) then
    raise_application_error(-900000,'Max. of 9,000,00 columns allowed, id='||p_file_name);
    end if;
    FOR i IN 1..l_record.count
    LOOP
    l_headings := l_headings||':'||l_record(i);
    l_columns := l_columns||',c'||lpad(i,3,'0');
    END LOOP;
    l_headings := ltrim(l_headings,':');
    l_columns := ltrim(l_columns,',');
    htmldb_util.set_session_state(p_headings_item,l_headings);
    htmldb_util.set_session_state(p_columns_item,l_columns);
    FOR i IN 2..l_records.count
    LOOP
    csv_to_array(l_records(i),l_record);
    l_seq_id := htmldb_collection.add_member(p_collection_name,'dummy');
    FOR i IN 1..l_record.count
    LOOP
    htmldb_collection.update_member_attribute(
    p_collection_name=> p_collection_name,
    p_seq => l_seq_id,
    p_attr_number => i,
    p_attr_value => l_record(i)
    END LOOP;
    END LOOP;
    DELETE FROM wwv_flow_files WHERE name=p_file_name;
    END;
    BEGIN
    NULL;
    END;

    sir manu,
    i started the oracleAS report Server with the following command in command prompt : rwserver server=rep_myserver
    and it successfully started.
    i insert this code on my button :
    DECLARE
         RO_Report_ID REPORT_OBJECT;
         Str_Report_Server_Job VARCHAR2(100);
         Str_Job_ID VARCHAR2(100);
         Str_URL VARCHAR2(100);
         PL_ID PARAMLIST ;
    BEGIN
         PL_ID := GET_PARAMETER_LIST('TEMPDATA');
         IF NOT ID_NULL(PL_ID) THEN
              PAUSE;
    DESTROY_PARAMETER_LIST(PL_ID);
         END IF;
         PL_ID := CREATE_PARAMETER_LIST('TEMPDATA');
         --RO_Report_ID := FIND_REPORT_OBJECT('REPORT_OBJ');
         RO_Report_ID := FIND_REPORT_OBJECT('REPORT1');
         ADD_PARAMETER(PL_ID, 's_sin_no', TEXT_PARAMETER,:scrap_delivery_request.sin_no);
              SET_REPORT_OBJECT_PROPERTY(RO_Report_ID, REPORT_FILENAME, 'C:\New Forms\REF_SF_510.ref');
              SET_REPORT_OBJECT_PROPERTY(RO_Report_ID, REPORT_COMM_MODE, SYNCHRONOUS);
              SET_REPORT_OBJECT_PROPERTY(RO_Report_ID, REPORT_EXECUTION_MODE, BATCH);
              SET_REPORT_OBJECT_PROPERTY(RO_Report_ID, REPORT_DESTYPE, cache);
              SET_REPORT_OBJECT_PROPERTY(RO_Report_ID, REPORT_DESFORMAT, 'PDF');
              SET_REPORT_OBJECT_PROPERTY(RO_Report_ID, REPORT_SERVER, 'rep_myserver');
              Str_Report_Server_Job := RUN_REPORT_OBJECT(RO_Report_ID, PL_ID);
              Str_Job_ID := SUBSTR(Str_Report_Server_Job, LENGTH('rep_myserver') + 2, LENGTH(Str_Report_Server_Job));
              Str_URL      := '/reports/rwservlet/getjobid' || Str_Job_ID || '?server=' || 'rep_myserver';
              WEB.SHOW_DOCUMENT(Str_URL, '_SELF');
              DESTROY_PARAMETER_LIST(PL_ID);
    END;
    after pressing the button this error come up in browser :
    REP-52251: Cannot get output of job ID 3 you requested on SAt. jul 04 11:44...... <P> REP-51026 :No output for job b

  • Creating Job Issue

    Hi Experts,
    I have created a page in Apex where I m using File browse item say :p13_filebrowse(where i m using CSV format files) and other items too. On click of Submit button I m calling package which dynamically creates the table successfully of browsed CSV FIle.
    Now My requirement is to create the dbms_scheduler Job for the existing package(AS Above) so that If I upload the very huge file it should run in backend using the DBMS Job.If I call package directly from the APex . it is happening successfully. But If i create the Job for that package then I m getting error for not identify the Apex file browsed items.
    In Package I m using wwv_flow_files from where i m extracting the file and creating the table.Through Job it is unable to recognise the Apex file browse item.For more information please go through the follwing code:-
    I m calling package from Apex which is succesfully executing in creaitng the table:-
    htmldb_sid_50.parse_file(:P13_FILEBROWSE,'P13_COLLECTION' ,'P13_HEADINGS','P13_COLUMNS','P13_DDL');
    htmldb_sid_50.parse_file(:P13_FILEBROWSE,'P13_COLLECTION' ,'P13_HEADINGS','P13_COLUMNS','P13_DDL','gdqdata.gdq_table1');
    Foollwing code of Package:-
    create or replace PACKAGE BODY htmldb_sid_50
    AS
    TYPE varchar2_t IS TABLE OF VARCHAR2(32767) INDEX BY binary_integer;
    -- Private functions --{{{
    PROCEDURE delete_collection ( --{{{
    -- Delete the collection if it exists
    p_collection_name IN VARCHAR2
    IS
    BEGIN
    IF (htmldb_collection.collection_exists(p_collection_name))
    THEN
    htmldb_collection.delete_collection(p_collection_name);
    END IF;
    END delete_collection; --}}}
    PROCEDURE csv_to_array ( --{{{
    -- Utility to take a CSV string, parse it into a PL/SQL table
    -- Note that it takes care of some elements optionally enclosed
    -- by double-quotes.
    p_csv_string IN VARCHAR2,
    p_array OUT wwv_flow_global.vc_arr2,
    p_num IN VARCHAR2 DEFAULT null,
    p_separator IN VARCHAR2 := ','
    IS
    l_start_separator PLS_INTEGER := 0;
    l_stop_separator PLS_INTEGER := 0;
    l_length PLS_INTEGER := 0;
    l_idx BINARY_INTEGER := 0;
    l_new_idx BINARY_INTEGER := 0;
    l_quote_enclosed BOOLEAN := FALSE;
    l_offset PLS_INTEGER := 1;
    p_csv_string_test varchar2(4000);
    cell_value varchar2(400);
    BEGIN
    l_length := NVL(LENGTH(p_csv_string),0);
    IF (l_length <= 0)
    THEN
    RETURN;
    END IF;
    LOOP
    l_idx := l_idx + 1;
    l_quote_enclosed := FALSE;
    -- p_csv_string
    p_csv_string_test := replace(p_csv_string,'""','@@');
    --p_csv_string := p_csv_string_test;
    IF SUBSTR(p_csv_string_test, l_start_separator + 1, 1) = '"'
    THEN
    l_quote_enclosed := TRUE;
    l_offset := 2;
    l_stop_separator := INSTR(p_csv_string_test, '"', l_start_separator + l_offset, 1);
    ELSE
    l_offset := 1;
    l_stop_separator := INSTR(p_csv_string_test, p_separator, l_start_separator + l_offset, 1);
    END IF;
    IF l_stop_separator = 0
    THEN
    l_stop_separator := l_length + 1;
    END IF;
    if l_idx = 1 then
    p_array(l_idx) := p_num;
    l_idx := l_idx + 1;
    end if;
    if(l_idx < 50) then
    cell_value := (SUBSTR(p_csv_string_test, l_start_separator + l_offset,(l_stop_separator - l_start_separator - l_offset)));
    cell_value := replace(cell_value, '@@', '"');
    p_array(l_idx) := cell_value;
    end if;
    EXIT WHEN l_stop_separator >= l_length;
    IF l_quote_enclosed
    THEN
    l_stop_separator := l_stop_separator + 1;
    END IF;
    l_start_separator := l_stop_separator;
    END LOOP;
    END csv_to_array; --}}}
    PROCEDURE get_records(p_blob IN blob,p_records OUT varchar2_t) --{{{
    IS
    l_record_separator VARCHAR2(2) := chr(13)||chr(10);
    l_last INTEGER;
    l_current INTEGER;
    BEGIN
    -- Sigh, stupid DOS/Unix newline stuff. If HTMLDB has generated the file,
    -- it will be a Unix text file. If user has manually created the file, it
    -- will have DOS newlines.
    -- If the file has a DOS newline (cr+lf), use that
    -- If the file does not have a DOS newline, use a Unix newline (lf)
    IF (NVL(dbms_lob.instr(p_blob,utl_raw.cast_to_raw(l_record_separator),1,1),0)=0)
    THEN
    l_record_separator := chr(10);
    END IF;
    l_last := 1;
    LOOP
    l_current := dbms_lob.instr( p_blob, utl_raw.cast_to_raw(l_record_separator), l_last, 1 );
    EXIT WHEN (nvl(l_current,0) = 0);
    p_records(p_records.count+1) := utl_raw.cast_to_varchar2(dbms_lob.substr(p_blob,l_current-l_last,l_last));
    l_last := l_current+length(l_record_separator);
    END LOOP;
    END get_records; --}}}
    -- Utility functions --{{{
    PROCEDURE parse_textarea ( --{{{
    p_textarea IN VARCHAR2,
    p_collection_name IN VARCHAR2
    IS
    l_index INTEGER;
    l_string VARCHAR2(32767) := TRANSLATE(p_textarea,chr(10)||chr(13)||' ,','@@@@');
    l_element VARCHAR2(100);
    BEGIN
    l_string := l_string||'@';
    htmldb_collection.create_or_truncate_collection(p_collection_name);
    LOOP
    l_index := instr(l_string,'@');
    EXIT WHEN NVL(l_index,0)=0;
    l_element := substr(l_string,1,l_index-1);
    IF (trim(l_element) IS NOT NULL)
    THEN
    htmldb_collection.add_member(p_collection_name,l_element);
    END IF;
    l_string := substr(l_string,l_index+1);
    END LOOP;
    END parse_textarea; --}}}
    PROCEDURE parse_file( --{{{
    p_file_name IN VARCHAR2,
    p_collection_name IN VARCHAR2,
    p_headings_item IN VARCHAR2,
    p_columns_item IN VARCHAR2,
    p_ddl_item IN VARCHAR2,
    p_table_name IN VARCHAR2 DEFAULT NULL
    IS
    l_blob blob;
    l_records varchar2_t;
    l_record wwv_flow_global.vc_arr2;
    l_datatypes wwv_flow_global.vc_arr2;
    l_headings VARCHAR2(4000);
    l_columns VARCHAR2(4000);
    l_seq_id NUMBER;
    l_num_columns INTEGER;
    l_ddl VARCHAR2(4000);
    l_keyword varchar2(300);
    l_records_count number;
    l_count number;
    l_filename varchar2(400);
    BEGIN
    --delete from test_mylog;
    -- insert into t_log(slog) values('p_file_name '||p_file_name||'p_collection_name '||p_collection_name||'p_headings_item '||p_headings_item||'p_columns_item '||p_columns_item||'p_ddl_item '||p_ddl_item||'p_table_name '||p_table_name);
    -- commit;
    insert into testing_job values(p_file_name,p_collection_name,p_headings_item,p_columns_item,p_ddl_item,p_table_name);commit;
    IF (p_table_name is not null)
    THEN
    BEGIN
    execute immediate 'drop table '||p_table_name;
    EXCEPTION
    WHEN OTHERS THEN null;
    END;
    l_ddl := 'create table '||p_table_name||' '||v(p_ddl_item);
    htmldb_util.set_session_state('P13_DEBUG',l_ddl);
    execute immediate l_ddl;
    l_ddl := 'insert into '||p_table_name||' '||
    'select '||v(p_columns_item)||' '||
    'from htmldb_collections '||
    'where seq_id > 1 and collection_name='''||p_collection_name||'''';
    htmldb_util.set_session_state('P13_DEBUG',v('P13_DEBUG')||'/'||l_ddl);
    execute immediate l_ddl;
    RETURN;
    END IF;
    BEGIN
    /*select blob_content into l_blob from wwv_flow_files
    where name=p_file_name;*/
    select the_blob into l_blob from t_batch_attachments
    where blob_filename=p_file_name;
    -- insert into testing_job values (l_blob);commit;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    raise_application_error(-20000,'File not found, id='||p_file_name);
    END;
    get_records(l_blob,l_records);
    IF (l_records.count < 2)
    THEN
    raise_application_error(-20000,'File must have at least 2 ROWS, id='||p_file_name);
    END IF;
    -- Initialize collection
    htmldb_collection.create_or_truncate_collection(p_collection_name);
    -- Get column headings and datatypes
    csv_to_array(l_records(1),l_record,'sid');
         --l_records_count:=l_record.count+1;
    --csv_to_array(l_records(l_records_count),l_datatypes);
         l_num_columns := l_record.count;
         if (l_num_columns > 100) then
    raise_application_error(-20000,'Max. of 100 columns allowed, id='||p_file_name);
    end if;
    -- Get column headings and names
    FOR i IN 1..l_record.count
    LOOP
    l_record(i) := trim(l_record(i));
    l_record(i) := replace(l_record(i),' ','_');
    l_record(i) := replace(l_record(i),'-','_');
    l_record(i) := replace(l_record(i),'(','_');
    l_record(i) := replace(l_record(i),')','_');
    l_record(i) := replace(l_record(i),':','_');
    l_record(i) := replace(l_record(i),';','_');
    l_record(i) := replace(l_record(i),'.','_');
    l_record(i) := replace(l_record(i),'"','_');
    l_headings := l_headings||':'||l_record(i);
    l_columns := l_columns||',c'||lpad(i,3,'0');
    END LOOP;
    l_headings := ltrim(l_headings,':');
    l_columns := ltrim(l_columns,',');
    htmldb_util.set_session_state(p_headings_item,l_headings);
    htmldb_util.set_session_state(p_columns_item,l_columns);
         -- Get datatypes
    FOR i IN 1..l_record.count
    LOOP
    l_datatypes(i):='varchar2(400)';
    l_ddl := l_ddl||','||l_record(i)||' '||l_datatypes(i);
    END LOOP;
    l_ddl := '('||ltrim(l_ddl,',')||')';
    htmldb_util.set_session_state(p_ddl_item,l_ddl);
    -- Save data into specified collection
    FOR i IN 1..l_records.count
    LOOP
    csv_to_array(l_records(i),l_record,i-1);
    l_seq_id := htmldb_collection.add_member(p_collection_name,'dummy');
    FOR i IN 1..l_record.count
    LOOP
    htmldb_collection.update_member_attribute(
    p_collection_name=> p_collection_name,
    p_seq => l_seq_id,
    p_attr_number => i,
    p_attr_value => l_record(i)
    END LOOP;
    END LOOP;
    -- DELETE FROM wwv_flow_files WHERE name=p_file_name;
    END;
    BEGIN
    NULL;
    END;
    Now I m stuck in If I call the Package through following Job:-
    DBMS_SCHEDULER.create_job (
    job_name => 'New_Testing1',
    job_type => 'PLSQL_BLOCK',
    job_action => 'begin
    GDQ.htmldb_sid_50.parse_file ('''||:P13_FILEBROWSE||''',''P13_COLLECTION'',''P13_HEADINGS'',''P13_COLUMNS'',''P13_DDL'');
    htmldb_sid_50.parse_file('''||:P13_FILEBROWSE||''',''P13_COLLECTION'' ,''P13_HEADINGS'',''P13_COLUMNS'',''P13_DDL'',''gdqdata.gdq_table1'');
    end;
    start_date => NULL,
    repeat_interval => NULL,
    end_date => NULL,
    enabled => TRUE,
    comments => 'UPLOAD FILE INTO TABLE IN GDQ.'
    I believe there is security issue in APex related to wwv_flow_files which is creating the problem . Please can anybody assist me in this issue.
    Thanks in Advance
    Danalaxmi

    Please post the details of the application release, along with the complete error message and the steps you followed to reproduce the issue.
    Thanks,
    Hussein

  • Can't add members to a collection

    I'm following the how to on manual forms. I'm trying to create the collection that is used for validation. I keep getting a ORA-06550, PLS-00306 error wrong number or types of arguments in call to 'ADD_MEMEBERS'. I'm using the code below. Any help would be appreciated. Thanks, Elizabeth
    declare
    la_cks wwv_flow_global.vc_arr2;
    begin
    if apex_application.g_fcs.count > 0 then
    la_cks := apex_application.g_fcs;
    else
    la_cks := apex_application.g_f06;
    end if;
    apex_collection.create_or_truncate_collection('UPDATE_LANG');
    apex_collection.create_or_truncate_collection('INSERT_LANG');
    for i in 1..apex_application.g_f02.count
    loop
    if apex_application.g_f02(i) is not null then
    apex_collection.add_members(
    p_collection_name => 'UPDATE_LANG',
    p_001 => apex_application.g_f01(i),
    p_002 => apex_application.g_f02(i),
    p_003 => apex_application.g_f03(i),
    p_004 => apex_application.g_f04(i),
    p_005 => apex_application.g_f05(i),
    p_006 => la_cks(i)
    else
    apex_collection.add_member(
    p_collection_name => 'INSERT_LANG',
    p_001 => apex_application.g_f01(i),
    p_002 => apex_application.g_f02(i),
    p_003 => apex_application.g_f03(i),
    p_004 => apex_application.g_f04(i),
    p_005 => apex_application.g_f05(i),
    p_006 => la_cks(i));
    end if;
    end loop; end;

    Thanks, I thought for sure it would work. Here is the code I use to generate the report:
    select apex_item.checkbox (1, ceah_people_lang_id,
    'onclick="highlight_row(this,' || ROWNUM || ')"',
    null,
    'F1_' || LPAD (ROWNUM, 4, '0')) delete_checkbox,
    apex_item.hidden(2,ceah_people_lang_id)
    ||
    apex_item.select_list_from_query(3,language_id,'select language_name, language_id from foreign_language',null,'NO') language_id,
    apex_item.hidden(4,ceah_people_id) ||
    apex_item.select_list_from_query(5,proficiency,'select name, id from proficiency',null,'NO')
    ||apex_item.hidden (6, wwv_flow_item.md5(language_id, proficiency)) proficiency
    from ceah_people_language where ceah_people_language.ceah_people_id = :P152_person_id
    union all
    select apex_item.checkbox
    (1,
    null,
    'onclick="highlight_row(this,' || ROWNUM || ')"',
    null,
    'F1_' || LPAD (ROWNUM, 4, '0')) delete_checkbox,
    apex_item.hidden(2,null) ||
    apex_item.select_list_from_query(3,null,'select language_name, language_id from foreign_language',
    'style="width:170px" ' ,
    'YES',
    '0',
    '- Select Foreign Language -',
    'f3_' || LPAD (9900 + ROWNUM, 4, '0'),
    NULL,
    'NO'
    ) language_id,
    apex_item.hidden(4,null) ||
    apex_item.select_list_from_query(5,null,'select name, id from proficiency',
    'style="width:170px" ' ,
    'YES',
    '0',
    '- Select Proficiency -',
    'f5_' || LPAD (9900 + ROWNUM, 4, '0'),
    NULL,
    'NO'
    ||apex_item.hidden (6, null)
    proficiency
    from dual where :request = 'ADD_ROWS'
    connect by level <= 2
    And here is the code I use to generate the collection with your suggestive changes:
    declare
    la_cks wwv_flow_global.vc_arr2;
    vchecked varchar2(1);
    begin
    if apex_application.g_fcs.count > 0 then
    la_cks := apex_application.g_fcs;
    else
    la_cks := apex_application.g_f06;
    end if;
    apex_collecTion.create_or_truncate_collection('UPDATE_LANG');
    apex_collecTion.create_or_truncate_collection('INSERT_LANG');
    for i in 1..apex_application.g_f02.count
    loop
    vchecked := 'N';
    if apex_application.g_f01(i) = apex_application.g_f02(i) then vchecked := 'Y';
    end if;
    if apex_application.g_f02(i) is not null then
    apex_collection.add_member(
    p_collection_name => 'UPDATE_LANG',
    p_c001 => vchecked,
    p_c002 => apex_application.g_f02(i),
    p_c003 => apex_application.g_f03(i),
    p_c004 => apex_application.g_f04(i),
    p_c005 => apex_application.g_f05(i),
    p_c006 => la_cks(i));
    else
    apex_collection.add_member(
    p_collection_name => 'INSERT_LANG',
    p_c001 => vchecked,
    p_c002 => apex_application.g_f02(i),
    p_c003 => apex_application.g_f03(i),
    p_c004 => apex_application.g_f04(i),
    p_c005 => apex_application.g_f05(i),
    p_c006 => la_cks(i));
    end if;
    end loop; end;
    Thanks for all of your help, Elizabeth

  • ApEx How 2  turn a multiselect list value (eg. 1:2:3:4 ) into (1,2,3,4)

    ApEx newbie here,
    I'm trying to get the output of a multi select list into an in list of a sql query for a report. The error message I'm getting is report error:
    ORA-01722: invalid number. (The inlist is a list of id numbers, and the data type for this column in the database is NUMBER)
    I've got a page item called P3_x which is populated from a MultiSelect list. I learned that these come out as colon delimited strings. (found a reference to hidden items in a blog that helped me figure this out)
    So I created a hidden item called P3_x_in_list which does this:
    Select '('|| regexp(:p3_x,':',',')||')' from dual which turns this into a comma separated list, like so: (1,2,3,4)
    I put this hidden item, P3_X_IN_LIST into the sql in my report region
    So in the report my sql looks like:
    select a, b, c
    from t1
    where id in: P3_x_in_list
    and some_date between :P1_X and :P2_X
    For some reason it throws an invalid number error when it runs. I haven't been able to find anything in the documentation or on the web that sheds any light on this. I'm hoping that there is a benevolent, experienced developer that can point me in the right direction. The debuging information from the page is below:
    Here is the debugging information
    0.24: ...Session State: Save "P3_X" - saving same value: "1:2:3:4:5"
    0.24: ...Session State: Save "P1_X" - saving same value: "01-DEC-2008"
    0.24: ...Session State: Save "P2_X" - saving same value: "04-DEC-2008"
    0.30: ...Session State: Save Item "P3_X_IN_LIST" newValue="(1,2,3,4,5)" "escape_on_input="N"
    0.30: Processing point: ON_SUBMIT_BEFORE_COMPUTATION
    0.46: show report
    0.46: determine column headings
    0.46: parse query as: my_schema
    1.76: binding: ":P3_X_IN_LIST"="P3_X_IN_LIST" value="(1,2,3,4,5)"
    2.64: binding: ":P2_X"="P2_X" value="04-DEC-2008"
    report error:
    ORA-01722: invalid number
    ORA-02063: preceding line from my_schema
    3.23: Computation point: AFTER_BOX_BODY
    3.23: Processing point: AFTER_BOX_BODY
    3.23: Computation point: BEFORE_FOOTER
    3.23: Processing point: BEFORE_FOOTER
    3.23: Show page tempate footer

    Well, let's say you had a SQL statement like
    select * from obj where object_id in 12345
    where object_id is defined to be a number type.
    Now, if you replace the literal '12345' with a bind variable and then bind "(1,2,3,4,5)" to this bind variable it will be clear why the SQL fails.
    As for using pipeline functions it is pretty straightforwad
    Here's an example
    CREATE OR REPLACE TYPE vc_array_1 AS TABLE OF VARCHAR2 (50);
    CREATE OR REPLACE FUNCTION get_list (
       p_string      IN   VARCHAR2,
       p_delimiter   IN   VARCHAR2 DEFAULT ':'
       RETURN vc_array_1 PIPELINED
    IS
        l_string     varchar2(32000);
        l_array     wwv_flow_global.vc_arr2;
    BEGIN
       l_array := apex_util.STRING_TO_TABLE(p_string,p_delimiter);
       for i in l_array.first..l_array.last loop
          pipe row (trim(l_array(i)));
       end loop;
       return;
    end;
    select column_value from table (get_list('1:2:3:4:5'));Your query can now be
    select a, b, c
    from t1
    where id in (select column_value from table get_list(: P3_x_in_list)) )   
    and some_date between :P1_X and :P2_XVarad

  • Help with uploading an excel file to a table using an application

    Hello,
    Can anyone please help me out with this issue. I have apex application where in the end users upload an excel file to a table. For this I have followed the solution provided in this link
    http://avdeo.com/2008/05/21/uploading-excel-sheet-using-oracle-application-express-apex/
    Using the above solution, I was able to upload the excel data to a table "sample_tbl1" successfully with fields Id,acct_no,owner_name,process_dt. But the thing is I want accomdate a particular condition while uploading the file data, to check see if the acct_no already exists in another table say "sample_tbl2" or not. If acct_nos already exists in sample_tbl2 then give out an error displaying the list of account numbers that already exists in the database. Below is the code which I am using to upload file data to a table.
    DECLARE
    v_blob_data       BLOB; 
    v_blob_len        NUMBER; 
    v_position        NUMBER; 
    v_raw_chunk       RAW(10000); 
    v_char            CHAR(1); 
    c_chunk_len       number       := 1; 
    v_line            VARCHAR2 (32767)        := NULL; 
    v_data_array      wwv_flow_global.vc_arr2; 
    v_rows            number; 
    v_sr_no           number         := 1; 
    l_cnt             BINARY_INTEGER := 0;
    l_stepid          NUMBER := 10;
    BEGIN
    --Read data from wwv_flow_files</span> 
    select blob_content into v_blob_data 
    from wwv_flow_files 
    where last_updated = (select max(last_updated) from wwv_flow_files where UPDATED_BY = :APP_USER) 
    and id = (select max(id) from wwv_flow_files where updated_by = :APP_USER); 
    v_blob_len := dbms_lob.getlength(v_blob_data); 
    v_position := 1; 
    /* Evaluate and skip first line of data
    WHILE (v_position <= v_blob_len ) LOOP
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position);
    v_char :=  chr(hex_to_decimal(rawtohex(v_raw_chunk)));
    v_line := v_line || v_char;
    v_position := v_position + c_chunk_len;
    -- When a whole line is retrieved
    IF v_char = CHR(10) THEN
    -- Clear out 
    v_line := NULL;
    EXIT;
    END IF;
    END LOOP;
    -- Read and convert binary to char</span> 
    WHILE ( v_position <= v_blob_len ) LOOP 
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position); 
    v_char :=  chr(hex_to_decimal(rawtohex(v_raw_chunk))); 
    v_line := v_line || v_char; 
    v_position := v_position + c_chunk_len; 
    -- When a whole line is retrieved </span> 
    IF v_char = CHR(10) THEN
    -- Convert comma to : to use wwv_flow_utilities </span> 
    v_line := REPLACE (v_line, ',', ':'); 
    -- Convert each column separated by : into array of data </span> 
    v_data_array := wwv_flow_utilities.string_to_table (v_line); 
    -- Insert data into target table
    EXECUTE IMMEDIATE 'insert into sample_tbl1(ID,ACCT_NO,OWNER_NAME,PROCESS_DT) 
    values (:1,:2,:3,:4)'
    USING 
    v_sr_no, 
    v_data_array(1), 
    v_data_array(2),
    to_date(v_data_array(3),'MM/DD/YYYY');
    -- Clear out 
    v_line := NULL; 
    v_sr_no := v_sr_no + 1; 
    l_cnt := l_cnt + SQL%ROWCOUNT;
    END IF; 
    END LOOP;
    delete from wwv_flow_files
    where last_updated = (select max(last_updated) from wwv_flow_files where UPDATED_BY = :APP_USER)
    and id = (select max(id) from wwv_flow_files where updated_by = :APP_USER);
    l_stepid  := 20;
    IF l_cnt = 0 THEN
    apex_application.g_print_success_message := apex_application.g_print_success_message || '<p><span style="font-size:14;font-weight:bold">Please select a file to upload.</span></p>' ;
    ELSE
    apex_application.g_print_success_message := apex_application.g_print_success_message || '<p><span style="font-size:14;font-weight:bold;color:green">File uploaded and processed ' || l_cnt || ' record(s) successfully.</span></p>';
    END IF;
    l_stepid  := 30;
    EXCEPTION WHEN OTHERS THEN
    ROLLBACK;
    apex_application.g_print_success_message := apex_application.g_print_success_message || '<p><span style="font-size:14;font-weight:bold;color:red">Failed to upload the file. '||REGEXP_REPLACE(SQLERRM,'[('')(<)(>)(,)(;)(:)(")('')]{1,}', '') ||'</span></p>';
    END;
    {code}
    Can anyone please help me, how do i accomdate the condition within my existing code.
    thanks,
    Orton                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Orton,
    From your code it appears that the account No comes in the second column of the file = > v_data_array(1)
    So You can put a conditional block around the execute immediate code that inserts the records
    For instance
      SELECT count(1) INTO ln_account_no_exists from <"sample_tbl2> where account_no = v_data_array(1);
      IF (  ln_account_no_exists > 0 ) THEN
         --Account No: already exists
        <Do what you want to do here >
      ELSE
        EXECUTE IMMEDIATE ...
      END IF:
    {code}
    Inorder to handle the account no records which exists you can
      <li>Raise an exception
      <li> Write record to table or insert into collection and then use a report region in the page based on this table/collection to show error records
      <li> Append errored account No:s to the Success Message Variable programmatically(this variable is used by PLSQL process success/error message )
       {code}
        IF ( record exists)
          apex_application.g_print_success_message := apex_application.g_print_success_message||','|| v_data_array(1) ; -- Comma separated list of errored account no:s
        ELSE ...
       {code}
    Hope it helps                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Data in CSV uploads successfully, but it is not visible after upload.

    Hi,
    I am using Apex 3.2 on Oracle 11g.
    This is an imported application for which I am making changes as per my requirements. As I am new to Apex and even SQL, I request forum members to help me with this.
    Please find below the old code for uploading data from CSV. It displays only 6 columns - Database Name, Server Name, Application Name, Application Provider, Critical, Remarks. This was successfully uploading all the data from CSV and that data was visible after upload.
    OLD CODE:_
    --PLSQL code for uploading application details
    DECLARE
    v_blob_data      BLOB;
    v_blob_len      NUMBER;
    v_position      NUMBER;
    v_raw_chunk      RAW(10000);
    v_char           CHAR(1);
    c_chunk_len           NUMBER:= 1;
    v_line           VARCHAR2 (32767):= NULL;
    v_data_array      wwv_flow_global.vc_arr2;
    v_rows           NUMBER;
    v_count           NUMBER;
    v_dbid           NUMBER;
    v_serverid           NUMBER;
    v_sr_no          NUMBER:=1;
    v_last_char          varchar2(2);
    BEGIN
    -- Read data from wwv_flow_files
    SELECT blob_content INTO v_blob_data FROM wwv_flow_files
    WHERE last_updated = (SELECT MAX(last_updated) FROM wwv_flow_files WHERE UPDATED_BY = :APP_USER)
    AND id = (SELECT MAX(id) FROM wwv_flow_files WHERE updated_by = :APP_USER);
    v_blob_len := dbms_lob.getlength(v_blob_data);
    v_position := 1;
    -- For removing the first line
    WHILE ( v_position <= v_blob_len )
    LOOP
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position);
    v_char := chr(hex_to_decimal(rawtohex(v_raw_chunk)));
    v_position := v_position + c_chunk_len;
    -- When a whole line is retrieved
    IF v_char = CHR(10) THEN
    EXIT;
    END IF;
    END LOOP;
    -- Read and convert binary to char
    WHILE ( v_position <= v_blob_len )
    LOOP
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position);
    v_char := chr(hex_to_decimal(rawtohex(v_raw_chunk)));
    v_line := v_line || v_char;
    v_position := v_position + c_chunk_len;
    -- When a whole line is retrieved
    IF v_char = CHR(10) THEN
    --removing the new line character added in the end
    v_line := substr(v_line, 1, length(v_line)-2);
    --removing the double quotes
    v_line := REPLACE (v_line, '"', '');
    --checking the absense of data in the end
    v_last_char:= substr(v_line,length(v_line),1);
    IF v_last_char = CHR(44) THEN
         v_line :=v_line||'-';
    END IF;
    -- Convert each column separated by , into array of data
    v_data_array := wwv_flow_utilities.string_to_table (v_line, ',');
    -- Insert data into target tables
    SELECT SERVERID into v_serverid FROM REPOS_SERVERS WHERE SERVERNAME=v_data_array(2);
    SELECT DBID into v_dbid FROM REPOS_DATABASES WHERE DBNAME=v_data_array(1) AND SERVERID=v_serverid;
    --Checking whether the data already exist
    SELECT COUNT(APPID) INTO v_count FROM REPOS_APPLICATIONS WHERE DBID=v_dbid AND APPNAME=v_data_array(1);
    IF v_count = 0 THEN
    EXECUTE IMMEDIATE 'INSERT INTO
    REPOS_APPLICATIONS (APPID,APPNAME,APP_PROVIDER,DBID,SERVERID,CRITICAL,LAST_UPDATE_BY,LAST_UPDATE_DATE,REMARKS) VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9)'
    USING
    APP_ID_SEQ.NEXTVAL,
    v_data_array(3),
    v_data_array(4),
    v_dbid,
    v_serverid,
    v_data_array(5),
    v_data_array(6),
    v_data_array(7),
    v_data_array(8);
    END IF;
    -- Clearing out the previous line
    v_line := NULL;
    END IF;
    END LOOP;
    END;
    ==============================================================================================================================
    Please find below the new code (which I modified as per my requirements) for uploading data from CSV. It displays 17 columns - Hostname, IP Address, Env Type, Env Num, Env Name, Application, Application Component, Notes, Cluster , Load Balanced, Business User Access Mechanism for Application, Env Owner, Controlled Environment, SSO Enabled, ADSI / LDAP / External Directory Authentication, Disaster Recovery Solution in Place, Interfaces with other application.
    This is successfully uploading all the data from CSV, But this uploaded data is not visible in its respective tab.
    _*NEW CODE:*_
    --PLSQL code for uploading application details
    DECLARE
    v_blob_data      BLOB;
    v_blob_len      NUMBER;
    v_position      NUMBER;
    v_raw_chunk      RAW(10000);
    v_char           CHAR(1);
    c_chunk_len           NUMBER:= 1;
    v_line           VARCHAR2 (32767):= NULL;
    v_data_array      wwv_flow_global.vc_arr2;
    v_rows           NUMBER;
    v_count           NUMBER;
    v_dbid           NUMBER;
    v_serverid           NUMBER;
    v_sr_no          NUMBER:=1;
    v_last_char          varchar2(2);
    BEGIN
    -- Read data from wwv_flow_files
    SELECT blob_content INTO v_blob_data FROM wwv_flow_files
    WHERE last_updated = (SELECT MAX(last_updated) FROM wwv_flow_files WHERE UPDATED_BY = :APP_USER)
    AND id = (SELECT MAX(id) FROM wwv_flow_files WHERE updated_by = :APP_USER);
    v_blob_len := dbms_lob.getlength(v_blob_data);
    v_position := 1;
    -- For removing the first line
    WHILE ( v_position <= v_blob_len )
    LOOP
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position);
    v_char := chr(hex_to_decimal(rawtohex(v_raw_chunk)));
    v_position := v_position + c_chunk_len;
    -- When a whole line is retrieved
    IF v_char = CHR(10) THEN
    EXIT;
    END IF;
    END LOOP;
    -- Read and convert binary to char
    WHILE ( v_position <= v_blob_len )
    LOOP
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position);
    v_char := chr(hex_to_decimal(rawtohex(v_raw_chunk)));
    v_line := v_line || v_char;
    v_position := v_position + c_chunk_len;
    -- When a whole line is retrieved
    IF v_char = CHR(10) THEN
    --removing the new line character added in the end
    v_line := substr(v_line, 1, length(v_line)-2);
    --removing the double quotes
    v_line := REPLACE (v_line, '"', '');
    --checking the absense of data in the end
    v_last_char:= substr(v_line,length(v_line),1);
    IF v_last_char = CHR(44) THEN
         v_line :=v_line||'-';
    END IF;
    -- Convert each column separated by , into array of data
    v_data_array := wwv_flow_utilities.string_to_table (v_line, ',');
    -- Insert data into target tables
    --SELECT SERVERID into v_serverid FROM REPOS_SERVERS WHERE SERVERNAME=v_data_array(2);
    --SELECT DBID into v_dbid FROM REPOS_DATABASES WHERE DBNAME=v_data_array(1) AND SERVERID=v_serverid;
    --Checking whether the data already exist
    --SELECT COUNT(APPID) INTO v_count FROM REPOS_APPLICATIONS WHERE DBID=v_dbid AND APPNAME=v_data_array(1);
    IF v_count = 0 THEN
    EXECUTE IMMEDIATE 'INSERT INTO
    REPOS_APPLICATIONS (APPID,HOSTNAME,IPADDRESS,ENV_TYPE,ENV_NUM,ENV_NAME,APPLICATION,APPLICATION_COMPONENT,NOTES,CLSTR,LOAD_BALANCED,BUSINESS,ENV_OWNER,CONTROLLED,SSO_ENABLED,ADSI,DISASTER,INTERFACES) VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18)'
    USING
    APP_ID_SEQ.NEXTVAL,
    v_data_array(1),
    v_data_array(2),
    v_data_array(3),
    v_data_array(4),
    v_data_array(5),
    v_data_array(6),
    v_data_array(7),
    v_data_array(8),
    v_data_array(9),
    v_data_array(10),
    v_data_array(11),
    v_data_array(12),
    v_data_array(13),
    v_data_array(14),
    v_data_array(15),
    v_data_array(16),
    v_data_array(17);
    END IF;
    -- Clearing out the previous line
    v_line := NULL;
    END IF;
    END LOOP;
    END;
    ============================================================================================================================
    FYI, CREATE TABLE_ is as below:
    CREATE TABLE "REPOS_APPLICATIONS"
    (     "APPID" NUMBER,
         "APPNAME" VARCHAR2(50),
         "APP_PROVIDER" VARCHAR2(50),
         "DBID" NUMBER,
         "CRITICAL" VARCHAR2(3),
         "REMARKS" VARCHAR2(255),
         "LAST_UPDATE_DATE" TIMESTAMP (6) DEFAULT SYSDATE NOT NULL ENABLE,
         "LAST_UPDATE_BY" VARCHAR2(10),
         "SERVERID" NUMBER,
         "HOSTNAME" VARCHAR2(20),
         "IPADDRESS" VARCHAR2(16),
         "ENV_TYPE" VARCHAR2(20),
         "ENV_NUM" VARCHAR2(20),
         "ENV_NAME" VARCHAR2(50),
         "APPLICATION" VARCHAR2(50),
         "APPLICATION_COMPONENT" VARCHAR2(50),
         "NOTES" VARCHAR2(255),
         "CLSTR" VARCHAR2(20),
         "LOAD_BALANCED" VARCHAR2(20),
         "BUSINESS" VARCHAR2(255),
         "ENV_OWNER" VARCHAR2(20),
         "CONTROLLED" VARCHAR2(20),
         "SSO_ENABLED" VARCHAR2(20),
         "ADSI" VARCHAR2(20),
         "DISASTER" VARCHAR2(50),
         "INTERFACES" VARCHAR2(50),
         CONSTRAINT "REPOS_APPLICATIONS_PK" PRIMARY KEY ("APPID") ENABLE
    ALTER TABLE "REPOS_APPLICATIONS" ADD CONSTRAINT "REPOS_APPLICATIONS_R01" FOREIGN KEY ("DBID")
         REFERENCES "REPOS_DATABASES" ("DBID") ENABLE
    ALTER TABLE "REPOS_APPLICATIONS" ADD CONSTRAINT "REPOS_APPLICATIONS_R02" FOREIGN KEY ("SERVERID")
         REFERENCES "REPOS_SERVERS" ("SERVERID") ENABLE
    ==============================================================================================================================
    It would be of great help if someone can help me to resolve this issue with uploading data from CSV.
    Thanks & Regards
    Sharath

    Hi,
    You can see the installed dictionaries and change between them by right-clicking and choosing '''Languages''' inside a live text box eg. the box you are in when replying or right-clicking on the '''Search''' box on the top right corner of this page and choosing '''Check Spelling'''.

  • How do you populate a page item in apex with a value read from excel

    Dear All
    I am working on application where I am uploading a csv file in oracle apex. I then need to access a value in Cell B2 of the csv file and populate a page item called
    :P2100_AUTHORISATION_ID with this value. Many of the examples I have found upload the data using v_data-array into a table but I don't need to do that I just need to get the value from the csv file and then display additional information about the file allowing the user to either or continue or cancel the request to upload. I am running into a small problem that I can't explain and wondered if anyone had any ideas.
    Here is the code I am using to try and populate and item called :P2100_AUTHORISATION_ID but when I poulate the item the value is always 0. But if I replace the line :P2100_AUTHORISATION_ID:= v_data_array(2) with a raise_application_error(-20001,v_data_array(2)); The correct value is displayed in the eror. Any Help would be appreciate and I apologise in advance if this akes no sense at all:-)
    declare
    --variables needed to read excel data from flow files
    v_blob_data BLOB;
    v_blob_len NUMBER;
    v_position NUMBER;
    v_raw_chunk RAW(10000);
    v_char CHAR(1);
    c_chunk_len number := 1;
    v_line VARCHAR2 (32767) := NULL;
    v_data_array wwv_flow_global.vc_arr2;
    v_rows number;
    v_sr_no number := 1;
    begin
    --------------------------------------get file info from www_flow_files
    select blob_content into v_blob_data from wwv_flow_files
    where last_updated = (select max(last_updated) from wwv_flow_files where UPDATED_BY = :APP_USER) and id = (select max(id) from wwv_flow_files where updated_by = :APP_USER);
    v_blob_len := dbms_lob.getlength(v_blob_data);
    v_position := 1;
    --Read and convert binary to char
    WHILE ( v_position <= v_blob_len ) LOOP
    v_raw_chunk := dbms_lob.substr(v_blob_data,c_chunk_len,v_position);
    v_char := chr(p_bl_wd_data_entry.hex_to_decimal(rawtohex(v_raw_chunk)));
    v_line := v_line || v_char;
    v_position := v_position + c_chunk_len;
    -- When a whole line is retrieved
    IF v_char = CHR(10) THEN
    -- Convert comma to : to use wwv_flow_utilities </span>
    v_line := REPLACE (v_line, ',', ':');
    -- Convert each column separated by : into array of data </span>
    v_data_array := wwv_flow_utilities.string_to_table (v_line);
    --get filename from wwv_flow_files
    select filename into :P2100_FILE_NAME from wwv_flow_files where last_updated = (select max(last_updated) from wwv_flow_files where UPDATED_BY = :APP_USER) and id = (select max(id) from wwv_flow_files where updated_by = :APP_USER);
    :P2100_AUTHORISATION_ID:= v_data_array(2);
    -- Clear out
    -- v_line := NULL;
    --v_sr_no := v_sr_no + 1;
    END IF;
    END LOOP;
    end;
    Best Regards
    Lynn

    Hi Joel
    Continuing on from my last question, there was something else I want to ask if you dont mind.
    Now that I have the v_data_array(2) value in a page item I would like to use as an input value to a procedure to return some information I need displayed on the page. To do this I need to convert it to a number but when I try to so this I get the following error
    ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    When I use the wwv_flow.debug that you told me about it is outputting a value '4851 ' so it look like there may be some sort of asii character causing a problem. I have tried using trim(v_data_array(2)) and ascii(v_data_array(2)) but nothing seems to work.
    Would you know how to convert a v_data_array value to a number? At the moment I am attemting to do it withiin the same code I attached in my earlier post but I have replaced the assignment of :P2100_AUTHORISATION_ID with the code below where P_BL_WD_DATA_ENTRY.getauthid is the procedure returning the values I need.
    :P2100_AUTHORISATION_ID:= P_BL_WD_DATA_ENTRY.getauthid(to_number(v_data_array(2)));
    Thanks
    Lynn

  • Error on /pls/apex/wwv_flow.show HTTP-404 ORA-06550: line 25, c

    Following on from the previous problem I had with Error 33331, we moved the application to a new APEX installation. Everything was fine for 30 mintes until
    we started getting this error :-
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    I've put in tracing in the httpd.conf file at info level and switched on mod_plsql tracing. Everything went fine for another 40 minutes but we're now getting the same errors, the following is one of the mod_plsql trace files.
    I have a hunch caching is at the root of the problem ?
    <5952 ms>[ReqStartTime: 6/Feb/2008:16:13:59]
    <5952 ms>Request ID ReqID:528620_1202314439
    <5953 ms>Connecting to database with connect string : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=mohawk)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=htmldb_p.world)))"
    <5975 ms>Doing alter session set nls_language= "AMERICAN" nls_territory= "AMERICA"
    <5975 ms>OpenCursor
    <5976 ms>Altered session to nls_language=AMERICAN nls_territory=AMERICA
    <5976 ms>DeinitCursor
    <5976 ms>OpenCursor
    <5977 ms>Status 1 (rc=0)
    <5977 ms>DeinitCursor
    <5977 ms>OpenCursor
    <5978 ms>DBCharSet is AMERICAN_AMERICA.WE8ISO8859P1, OWAVersion 10.1.2.0.0, 1001020000 (rc=0)
    <5978 ms>DeinitCursor
    <5978 ms>OpenCursor
    <5978 ms>(wpd.c,1765) Logged in as (unknown)
    <5978 ms>(wpx.c,598) Going to select...
    <5978 ms>(wpx.c,652) Have been asked to execute a request
    <5978 ms>(wppa.c,334) Building Arglist based on Parsed Content from WRB
    <5978 ms>(wppa.c,1016) Enter ParseUrlData
    <5978 ms>POST
    <5978 ms>(wpu.c,257) Attempting to read 147 bytes
    <5978 ms>(wpu.c,262) We read 147, had 0, to get 0 bytes
    <5978 ms>[headers begin]
    <5978 ms>[headers end]
    <5978 ms>p_request=APPLICATION_PROCESS%3Dget_Level23XML&p_instance=2989139092861589&p_flow_id=1122&p_flow_step_id=0&p_arg_names=TEMPORARY_ITEM&p_arg_values=
    <5978 ms>[form_data]
    <5978 ms>p_request=APPLICATION_PROCESS%3Dget_Level23XML&p_instance=2989139092861589&p_flow_id=1122&p_flow_step_id=0&p_arg_names=TEMPORARY_ITEM&p_arg_values=
    <5978 ms>(wppa.c,1523) indx = 6, entryCnt = 6
    <5978 ms>(wppa.c,1844) Listing distinct actual names:
    <5978 ms>(wppa.c,1846) p_request
    <5978 ms>(wppa.c,1846) p_instance
    <5978 ms>(wppa.c,1846) p_flow_id
    <5978 ms>(wppa.c,1846) p_flow_step_id
    <5978 ms>(wppa.c,1846) p_arg_names
    <5978 ms>(wppa.c,1846) p_arg_values
    <5978 ms>(wppa.c,1848) Listing actuals of array with large entries:
    <5978 ms>(wppa.c,1853) Listing distinct actual names and values:
    <5978 ms>(wppa.c,1885) p_request, type = 0, value (35) = APPLICATION_PROCESS=get_Level23XML
    <5978 ms>(wppa.c,1885) p_instance, type = 0, value (17) = 2989139092861589
    <5978 ms>(wppa.c,1885) p_flow_id, type = 0, value (5) = 1122
    <5978 ms>(wppa.c,1885) p_flow_step_id, type = 0, value (2) = 0
    <5978 ms>(wppa.c,1885) p_arg_names, type = 0, value (15) = TEMPORARY_ITEM
    <5978 ms>(wppa.c,1885) p_arg_values, type = 0, value (1) =
    <5978 ms>(wppa.c,429) Arglist built, 6 unique entries
    <5978 ms>(wpx.c,659) Going to wpprodb_OciDoBlock...
    <5978 ms>(wpd.c,2750) Cache enabled. Gathering cache information.
    <5978 ms>(wpd.c,2768) Language for this request is en-gb
    <5978 ms>(wpd.c,2819) Using user APEX_PUBLIC_USER for caching.
    <5978 ms>cache: Checking for user level hit
    <5979 ms>cache: Cache MISS user - /u01/app/oracle/product/10.2.0.1_html/Apache/modplsql/cache/plsql/073/9629
    <5979 ms>cache: Checking for system level hit
    <5979 ms>cache: Cache MISS system - /u01/app/oracle/product/10.2.0.1_html/Apache/modplsql/cache/plsql/sys/374/2755
    <5979 ms>(wppr.c,460) start working with wwv_flow.show
    <5979 ms>(wppr.c,1164) The CALL block: len=1115, bind_count=14
    declare
    rc__ number;
    start_time__ binary_integer;
    simple_list__ owa_util.vc_arr;
    complex_list__ owa_util.vc_arr;
    begin
    start_time__ := dbms_utility.get_time;
    owa.init_cgi_env(:n__,:nm__,:v__);
    htp.HTBUF_LEN := 63;
    null;
    null;
    simple_list__(1) := 'sys.%';
    simple_list__(2) := 'dbms\_%';
    simple_list__(3) := 'utl\_%';
    simple_list__(4) := 'owa\_%';
    simple_list__(5) := 'owa.%';
    simple_list__(6) := 'htp.%';
    simple_list__(7) := 'htf.%';
    simple_list__(8) := 'wpg_docload.%';
    if ((owa_match.match_pattern('wwv_flow.show', simple_list__, complex_list__, true))) then
    rc__ := 2;
    else
    null;
    null;
    wwv_flow.show(p_request=>:p_request,p_instance=>:p_instance,p_flow_id=>:p_flow_id,p_flow_step_id=>:p_flow_step_id,p_arg_names=>:p_arg_names,p_arg_values=>:p_arg_values);
    if (wpg_docload.is_file_download) then
    rc__ := 1;
    wpg_docload.get_download_file(:doc_info);
    null;
    null;
    null;
    commit;
    else
    rc__ := 0;
    null;
    null;
    null;
    commit;
    owa.get_page(:data__,:ndata__);
    end if;
    end if;
    :rc__ := rc__;
    :db_proc_time__ := dbms_utility.get_time - start_time__;
    end;
    <5979 ms>(wppr.c,520) Pl/sql block parsed...
    <5979 ms>(wpdenv.c,1527) CGI Environment has 30 vars. Max name len 128, Max Value Len 128
    <5979 ms> PLSQL_GATEWAY(14)=(6)WebDb
    <5979 ms> GATEWAY_IVERSION(17)=(2)2
    <5979 ms> SERVER_SOFTWARE(16)=(60)Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server
    <5979 ms> GATEWAY_INTERFACE(18)=(8)CGI/1.1
    <5979 ms> SERVER_PORT(12)=(5)7777
    <5979 ms> SERVER_NAME(12)=(22)mohawk.ventura-uk.com
    <5979 ms> REQUEST_METHOD(15)=(5)POST
    <5979 ms> PATH_INFO(10)=(15)/wwv_flow.show
    <5979 ms> SCRIPT_NAME(12)=(10)/pls/apex
    <5979 ms> REMOTE_ADDR(12)=(9)10.0.2.0
    <5979 ms> SERVER_PROTOCOL(16)=(9)HTTP/1.1
    <5979 ms> REQUEST_PROTOCOL(17)=(5)HTTP
    <5979 ms> REMOTE_USER(12)=(17)APEX_PUBLIC_USER
    <5979 ms> HTTP_CONTENT_LENGTH(20)=(4)147
    <5979 ms> HTTP_CONTENT_TYPE(18)=(34)application/x-www-form-urlencoded
    <5979 ms> HTTP_USER_AGENT(16)=(75)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    <5979 ms> HTTP_HOST(10)=(12)mohawk:7777
    <5979 ms> HTTP_ACCEPT(12)=(4)*/*
    <5979 ms> HTTP_ACCEPT_ENCODING(21)=(14)gzip, deflate
    <5979 ms> HTTP_ACCEPT_LANGUAGE(21)=(6)en-gb
    <5979 ms> HTTP_REFERER(13)=(123)http://mohawk:7777/pls/apex/f?p=1122:1:2989139092861589::::F101_CACHED_NTID,P1_STRADNAME,P2_STRADNAME:sw2802,sw2802,sw2802
    <5979 ms> HTTP_ORACLE_ECID(17)=(36)1202314439:10.30.96.8:528620:0:22,0
    <5979 ms> WEB_AUTHENT_PREFIX(19)=(1)
    <5979 ms> DAD_NAME(9)=(5)apex
    <5979 ms> DOC_ACCESS_PATH(16)=(5)docs
    <5979 ms> DOCUMENT_TABLE(15)=(23)wwv_flow_file_objects$
    <5979 ms> PATH_ALIAS(11)=(1)
    <5979 ms> REQUEST_CHARSET(16)=(9)AL32UTF8
    <5979 ms> REQUEST_IANA_CHARSET(21)=(6)UTF-8
    <5979 ms> SCRIPT_PREFIX(14)=(5)/pls
    <5979 ms>StrArrPosBind pos 2 Charset Id : 873
    <5979 ms>StrArrPosBind pos 3 Charset Id : 873
    <5979 ms>StrArrPosBind pos 11 Charset Id : 873
    <5984 ms>Execute: ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PL/SQL: Statement ignored
    <5984 ms>(wppr.c,640) Execute:declare
    objnum NUMBER;
    objtyp NUMBER;
    prename VARCHAR2(31);
    name VARCHAR(31);
    subname VARCHAR(31);
    dblnk VARCHAR(31);
    begin
    dbms_utility.name_resolve(:objname, 1, prename, name, subname,
    dblnk, objtyp, objnum);
    if (name is null) then
    sys.wpiutl.subpparam(objnum,subname,null,prename,:2,:3,:4,:5,:6,:7);
    else
    sys.wpiutl.subpparam(objnum,name,subname,prename,:2,:3,:4,:5,:6,:7);
    end if;
    exception
    when others then :5 := 1;
    end;
    <5984 ms>(wppr.c,660) 6 parameter names
    <5984 ms>StrArrPosBind pos 2 Charset Id : 873
    <5984 ms>StrArrPosBind pos 3 Charset Id : 873
    <5984 ms>StrArrPosBind pos 4 Charset Id : 873
    <5985 ms>(wppr.c,704) misdefl=0, nenamei=0
    <5985 ms>(wppr.c,744) print list of name, types, typeflags
    <5985 ms>(wppr.c,797) parameter name: P_REQUEST, type: VARCHAR2, typeflags: 000
    <5985 ms>(wppr.c,797) parameter name: P_INSTANCE, type: VARCHAR2, typeflags: 000
    <5985 ms>(wppr.c,797) parameter name: P_FLOW_ID, type: VARCHAR2, typeflags: 000
    <5985 ms>(wppr.c,797) parameter name: P_FLOW_STEP_ID, type: VARCHAR2, typeflags: 000
    <5985 ms>(wppr.c,759) Array graduation (1=>4, 15=>32)
    <5985 ms>(wppr.c,797) parameter name: P_ARG_NAMES, type: FLOWS_030000.WWV_FLOW_GLOBAL.VC_ARR2, typeflags: 001
    <5985 ms>(wppr.c,759) Array graduation (1=>4, 1=>32)
    <5985 ms>(wppr.c,797) parameter name: P_ARG_VALUES, type: FLOWS_030000.WWV_FLOW_GLOBAL.VC_ARR2, typeflags: 001
    <5985 ms>(wppr.c,520) Pl/sql block parsed...
    <5985 ms>(wpdenv.c,1527) CGI Environment has 30 vars. Max name len 128, Max Value Len 128
    <5985 ms> PLSQL_GATEWAY(14)=(6)WebDb
    <5985 ms> GATEWAY_IVERSION(17)=(2)2
    <5985 ms> SERVER_SOFTWARE(16)=(60)Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server
    <5985 ms> GATEWAY_INTERFACE(18)=(8)CGI/1.1
    <5985 ms> SERVER_PORT(12)=(5)7777
    <5985 ms> SERVER_NAME(12)=(22)mohawk.ventura-uk.com
    <5985 ms> REQUEST_METHOD(15)=(5)POST
    <5985 ms> PATH_INFO(10)=(15)/wwv_flow.show
    <5985 ms> SCRIPT_NAME(12)=(10)/pls/apex
    <5985 ms> REMOTE_ADDR(12)=(9)10.0.2.0
    <5985 ms> SERVER_PROTOCOL(16)=(9)HTTP/1.1
    <5985 ms> REQUEST_PROTOCOL(17)=(5)HTTP
    <5985 ms> REMOTE_USER(12)=(17)APEX_PUBLIC_USER
    <5985 ms> HTTP_CONTENT_LENGTH(20)=(4)147
    <5985 ms> HTTP_CONTENT_TYPE(18)=(34)application/x-www-form-urlencoded
    <5985 ms> HTTP_USER_AGENT(16)=(75)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    <5985 ms> HTTP_HOST(10)=(12)mohawk:7777
    <5985 ms> HTTP_ACCEPT(12)=(4)*/*
    <5985 ms> HTTP_ACCEPT_ENCODING(21)=(14)gzip, deflate
    <5985 ms> HTTP_ACCEPT_LANGUAGE(21)=(6)en-gb
    <5985 ms> HTTP_REFERER(13)=(123)http://mohawk:7777/pls/apex/f?p=1122:1:2989139092861589::::F101_CACHED_NTID,P1_STRADNAME,P2_STRADNAME:sw2802,sw2802,sw2802
    <5985 ms> HTTP_ORACLE_ECID(17)=(36)1202314439:10.30.96.8:528620:0:22,0
    <5985 ms> WEB_AUTHENT_PREFIX(19)=(1)
    <5985 ms> DAD_NAME(9)=(5)apex
    <5985 ms> DOC_ACCESS_PATH(16)=(5)docs
    <5985 ms> DOCUMENT_TABLE(15)=(23)wwv_flow_file_objects$
    <5985 ms> PATH_ALIAS(11)=(1)
    <5985 ms> REQUEST_CHARSET(16)=(9)AL32UTF8
    <5985 ms> REQUEST_IANA_CHARSET(21)=(6)UTF-8
    <5985 ms> SCRIPT_PREFIX(14)=(5)/pls
    <5985 ms>StrArrPosBind pos 2 Charset Id : 873
    <5985 ms>StrArrPosBind pos 3 Charset Id : 873
    <5985 ms>StrArrPosBind pos 8 Charset Id : 873
    <5985 ms>StrArrPosBind pos 9 Charset Id : 873
    <5985 ms>StrArrPosBind pos 11 Charset Id : 873
    <5990 ms>ORA-6550 Execute ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PL/SQL: Statement ignored
    <5991 ms>/pls/apex/wwv_flow.show HTTP-404 ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PL/SQL: Statement ignored
    <5991 ms>(wpu.c,595) longjumping back to the beginning
    <5991 ms>(wpu.c,458) cleaning up before longjmp
    <5991 ms>(wpu.c,462) doing a rollback
    <5991 ms>(wpcs.c, 77) Executed 'rollback' (rc=0)
    <5991 ms>(wpcs.c, 77) Executed 'begin dbms_session.reset_package; end;' (rc=0)
    <5991 ms>(wpd.c,1820) Going to close cursor
    <5991 ms>DeinitCursor
    <5991 ms>(wpx.c,693) Shutdown has been called
    <5991 ms>(wpx.c,705) Going to logoff
    <5991 ms>Logoff: Pooling this connection
    <5991 ms>[ReqEndtime: 6/Feb/2008:16:13:59]
    <5991 ms>[ReqExecTime: 39 ms]
    <3240798667 ms>[ReqStartTime: 6/Feb/2008:16:14:06]
    <3240798667 ms>Request ID ReqID:528620_1202314446
    <3240798667 ms>Connecting to database with connect string : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=mohawk)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=htmldb_p.world)))"
    <3240798667 ms>OpenCursor
    <3240798667 ms>(wpd.c,1765) Logged in as (unknown)
    <3240798667 ms>(wpx.c,598) Going to select...
    <3240798667 ms>(wpx.c,652) Have been asked to execute a request
    <3240798667 ms>(wppa.c,334) Building Arglist based on Parsed Content from WRB
    <3240798667 ms>(wppa.c,1016) Enter ParseUrlData
    <3240798667 ms>POST
    <3240798667 ms>(wpu.c,257) Attempting to read 147 bytes
    <3240798667 ms>(wpu.c,262) We read 147, had 0, to get 0 bytes
    <3240798667 ms>[headers begin]
    <3240798667 ms>[headers end]
    <3240798667 ms>p_request=APPLICATION_PROCESS%3Dget_Level23XML&p_instance=2989139092861589&p_flow_id=1122&p_flow_step_id=0&p_arg_names=TEMPORARY_ITEM&p_arg_values=
    <3240798667 ms>[form_data]
    <3240798667 ms>p_request=APPLICATION_PROCESS%3Dget_Level23XML&p_instance=2989139092861589&p_flow_id=1122&p_flow_step_id=0&p_arg_names=TEMPORARY_ITEM&p_arg_values=
    <3240798667 ms>(wppa.c,1523) indx = 6, entryCnt = 6
    <3240798667 ms>(wppa.c,1844) Listing distinct actual names:
    <3240798667 ms>(wppa.c,1846) p_request
    <3240798667 ms>(wppa.c,1846) p_instance
    <3240798667 ms>(wppa.c,1846) p_flow_id
    <3240798667 ms>(wppa.c,1846) p_flow_step_id
    <3240798667 ms>(wppa.c,1846) p_arg_names
    <3240798667 ms>(wppa.c,1846) p_arg_values
    <3240798668 ms>(wppa.c,1848) Listing actuals of array with large entries:
    <3240798668 ms>(wppa.c,1853) Listing distinct actual names and values:
    <3240798668 ms>(wppa.c,1885) p_request, type = 0, value (35) = APPLICATION_PROCESS=get_Level23XML
    <3240798668 ms>(wppa.c,1885) p_instance, type = 0, value (17) = 2989139092861589
    <3240798668 ms>(wppa.c,1885) p_flow_id, type = 0, value (5) = 1122
    <3240798668 ms>(wppa.c,1885) p_flow_step_id, type = 0, value (2) = 0
    <3240798668 ms>(wppa.c,1885) p_arg_names, type = 0, value (15) = TEMPORARY_ITEM
    <3240798668 ms>(wppa.c,1885) p_arg_values, type = 0, value (1) =
    <3240798668 ms>(wppa.c,429) Arglist built, 6 unique entries
    <3240798668 ms>(wpx.c,659) Going to wpprodb_OciDoBlock...
    <3240798668 ms>(wpd.c,2750) Cache enabled. Gathering cache information.
    <3240798668 ms>(wpd.c,2768) Language for this request is en-gb
    <3240798668 ms>(wpd.c,2819) Using user APEX_PUBLIC_USER for caching.
    <3240798668 ms>cache: Checking for user level hit
    <3240798668 ms>cache: Cache MISS user - /u01/app/oracle/product/10.2.0.1_html/Apache/modplsql/cache/plsql/073/9629
    <3240798668 ms>cache: Checking for system level hit
    <3240798668 ms>cache: Cache MISS system - /u01/app/oracle/product/10.2.0.1_html/Apache/modplsql/cache/plsql/sys/374/2755
    <3240798668 ms>(wppr.c,460) start working with wwv_flow.show
    <3240798668 ms>(wppr.c,1164) The CALL block: len=1115, bind_count=14
    declare
    rc__ number;
    start_time__ binary_integer;
    simple_list__ owa_util.vc_arr;
    complex_list__ owa_util.vc_arr;
    begin
    start_time__ := dbms_utility.get_time;
    owa.init_cgi_env(:n__,:nm__,:v__);
    htp.HTBUF_LEN := 63;
    null;
    null;
    simple_list__(1) := 'sys.%';
    simple_list__(2) := 'dbms\_%';
    simple_list__(3) := 'utl\_%';
    simple_list__(4) := 'owa\_%';
    simple_list__(5) := 'owa.%';
    simple_list__(6) := 'htp.%';
    simple_list__(7) := 'htf.%';
    simple_list__(8) := 'wpg_docload.%';
    if ((owa_match.match_pattern('wwv_flow.show', simple_list__, complex_list__, true))) then
    rc__ := 2;
    else
    null;
    null;
    wwv_flow.show(p_request=>:p_request,p_instance=>:p_instance,p_flow_id=>:p_flow_id,p_flow_step_id=>:p_flow_step_id,p_arg_names=>:p_arg_names,p_arg_values=>:p_arg_values);
    if (wpg_docload.is_file_download) then
    rc__ := 1;
    wpg_docload.get_download_file(:doc_info);
    null;
    null;
    null;
    commit;
    else
    rc__ := 0;
    null;
    null;
    null;
    commit;
    owa.get_page(:data__,:ndata__);
    end if;
    end if;
    :rc__ := rc__;
    :db_proc_time__ := dbms_utility.get_time - start_time__;
    end;
    <3240798668 ms>(wppr.c,520) Pl/sql block parsed...
    <3240798668 ms>(wpdenv.c,1527) CGI Environment has 30 vars. Max name len 128, Max Value Len 128
    <3240798668 ms> PLSQL_GATEWAY(14)=(6)WebDb
    <3240798668 ms> GATEWAY_IVERSION(17)=(2)3
    <3240798668 ms> SERVER_SOFTWARE(16)=(60)Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server
    <3240798668 ms> GATEWAY_INTERFACE(18)=(8)CGI/1.1
    <3240798668 ms> SERVER_PORT(12)=(5)7777
    <3240798668 ms> SERVER_NAME(12)=(22)mohawk.ventura-uk.com
    <3240798668 ms> REQUEST_METHOD(15)=(5)POST
    <3240798668 ms> PATH_INFO(10)=(15)/wwv_flow.show
    <3240798668 ms> SCRIPT_NAME(12)=(10)/pls/apex
    <3240798668 ms> REMOTE_ADDR(12)=(9)10.0.2.0
    <3240798668 ms> SERVER_PROTOCOL(16)=(9)HTTP/1.1
    <3240798668 ms> REQUEST_PROTOCOL(17)=(5)HTTP
    <3240798668 ms> REMOTE_USER(12)=(17)APEX_PUBLIC_USER
    <3240798668 ms> HTTP_CONTENT_LENGTH(20)=(4)147
    <3240798668 ms> HTTP_CONTENT_TYPE(18)=(34)application/x-www-form-urlencoded
    <3240798668 ms> HTTP_USER_AGENT(16)=(75)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    <3240798668 ms> HTTP_HOST(10)=(12)mohawk:7777
    <3240798668 ms> HTTP_ACCEPT(12)=(4)*/*
    <3240798668 ms> HTTP_ACCEPT_ENCODING(21)=(14)gzip, deflate
    <3240798668 ms> HTTP_ACCEPT_LANGUAGE(21)=(6)en-gb
    <3240798668 ms> HTTP_REFERER(13)=(123)http://mohawk:7777/pls/apex/f?p=1122:1:2989139092861589::::F101_CACHED_NTID,P1_STRADNAME,P2_STRADNAME:sw2802,sw2802,sw2802
    <3240798668 ms> HTTP_ORACLE_ECID(17)=(36)1202314446:10.30.96.8:528620:0:35,0
    <3240798668 ms> WEB_AUTHENT_PREFIX(19)=(1)
    <3240798668 ms> DAD_NAME(9)=(5)apex
    <3240798668 ms> DOC_ACCESS_PATH(16)=(5)docs
    <3240798668 ms> DOCUMENT_TABLE(15)=(23)wwv_flow_file_objects$
    <3240798668 ms> PATH_ALIAS(11)=(1)
    <3240798668 ms> REQUEST_CHARSET(16)=(9)AL32UTF8
    <3240798668 ms> REQUEST_IANA_CHARSET(21)=(6)UTF-8
    <3240798668 ms> SCRIPT_PREFIX(14)=(5)/pls
    <3240798668 ms>StrArrPosBind pos 2 Charset Id : 873
    <3240798668 ms>StrArrPosBind pos 3 Charset Id : 873
    <3240798668 ms>StrArrPosBind pos 11 Charset Id : 873
    <3240798673 ms>Execute: ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PL/SQL: Statement ignored
    <3240798673 ms>(wppr.c,640) Execute:declare
    objnum NUMBER;
    objtyp NUMBER;
    prename VARCHAR2(31);
    name VARCHAR(31);
    subname VARCHAR(31);
    dblnk VARCHAR(31);
    begin
    dbms_utility.name_resolve(:objname, 1, prename, name, subname,
    dblnk, objtyp, objnum);
    if (name is null) then
    sys.wpiutl.subpparam(objnum,subname,null,prename,:2,:3,:4,:5,:6,:7);
    else
    sys.wpiutl.subpparam(objnum,name,subname,prename,:2,:3,:4,:5,:6,:7);
    end if;
    exception
    when others then :5 := 1;
    end;
    <3240798673 ms>(wppr.c,660) 6 parameter names
    <3240798673 ms>StrArrPosBind pos 2 Charset Id : 873
    <3240798673 ms>StrArrPosBind pos 3 Charset Id : 873
    <3240798673 ms>StrArrPosBind pos 4 Charset Id : 873
    <3240798674 ms>(wppr.c,704) misdefl=0, nenamei=0
    <3240798674 ms>(wppr.c,744) print list of name, types, typeflags
    <3240798674 ms>(wppr.c,797) parameter name: P_REQUEST, type: VARCHAR2, typeflags: 000
    <3240798674 ms>(wppr.c,797) parameter name: P_INSTANCE, type: VARCHAR2, typeflags: 000
    <3240798674 ms>(wppr.c,797) parameter name: P_FLOW_ID, type: VARCHAR2, typeflags: 000
    <3240798674 ms>(wppr.c,797) parameter name: P_FLOW_STEP_ID, type: VARCHAR2, typeflags: 000
    <3240798674 ms>(wppr.c,759) Array graduation (1=>4, 15=>32)
    <3240798674 ms>(wppr.c,797) parameter name: P_ARG_NAMES, type: FLOWS_030000.WWV_FLOW_GLOBAL.VC_ARR2, typeflags: 001
    <3240798674 ms>(wppr.c,759) Array graduation (1=>4, 1=>32)
    <3240798674 ms>(wppr.c,797) parameter name: P_ARG_VALUES, type: FLOWS_030000.WWV_FLOW_GLOBAL.VC_ARR2, typeflags: 001
    <3240798674 ms>(wppr.c,520) Pl/sql block parsed...
    <3240798674 ms>(wpdenv.c,1527) CGI Environment has 30 vars. Max name len 128, Max Value Len 128
    <3240798674 ms> PLSQL_GATEWAY(14)=(6)WebDb
    <3240798674 ms> GATEWAY_IVERSION(17)=(2)3
    <3240798674 ms> SERVER_SOFTWARE(16)=(60)Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server
    <3240798674 ms> GATEWAY_INTERFACE(18)=(8)CGI/1.1
    <3240798674 ms> SERVER_PORT(12)=(5)7777
    <3240798674 ms> SERVER_NAME(12)=(22)mohawk.ventura-uk.com
    <3240798674 ms> REQUEST_METHOD(15)=(5)POST
    <3240798674 ms> PATH_INFO(10)=(15)/wwv_flow.show
    <3240798674 ms> SCRIPT_NAME(12)=(10)/pls/apex
    <3240798674 ms> REMOTE_ADDR(12)=(9)10.0.2.0
    <3240798674 ms> SERVER_PROTOCOL(16)=(9)HTTP/1.1
    <3240798674 ms> REQUEST_PROTOCOL(17)=(5)HTTP
    <3240798674 ms> REMOTE_USER(12)=(17)APEX_PUBLIC_USER
    <3240798674 ms> HTTP_CONTENT_LENGTH(20)=(4)147
    <3240798674 ms> HTTP_CONTENT_TYPE(18)=(34)application/x-www-form-urlencoded
    <3240798674 ms> HTTP_USER_AGENT(16)=(75)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    <3240798674 ms> HTTP_HOST(10)=(12)mohawk:7777
    <3240798674 ms> HTTP_ACCEPT(12)=(4)*/*
    <3240798674 ms> HTTP_ACCEPT_ENCODING(21)=(14)gzip, deflate
    <3240798674 ms> HTTP_ACCEPT_LANGUAGE(21)=(6)en-gb
    <3240798674 ms> HTTP_REFERER(13)=(123)http://mohawk:7777/pls/apex/f?p=1122:1:2989139092861589::::F101_CACHED_NTID,P1_STRADNAME,P2_STRADNAME:sw2802,sw2802,sw2802
    <3240798674 ms> HTTP_ORACLE_ECID(17)=(36)1202314446:10.30.96.8:528620:0:35,0
    <3240798674 ms> WEB_AUTHENT_PREFIX(19)=(1)
    <3240798674 ms> DAD_NAME(9)=(5)apex
    <3240798674 ms> DOC_ACCESS_PATH(16)=(5)docs
    <3240798674 ms> DOCUMENT_TABLE(15)=(23)wwv_flow_file_objects$
    <3240798674 ms> PATH_ALIAS(11)=(1)
    <3240798674 ms> REQUEST_CHARSET(16)=(9)AL32UTF8
    <3240798674 ms> REQUEST_IANA_CHARSET(21)=(6)UTF-8
    <3240798674 ms> SCRIPT_PREFIX(14)=(5)/pls
    <3240798674 ms>StrArrPosBind pos 2 Charset Id : 873
    <3240798674 ms>StrArrPosBind pos 3 Charset Id : 873
    <3240798675 ms>StrArrPosBind pos 8 Charset Id : 873
    <3240798675 ms>StrArrPosBind pos 9 Charset Id : 873
    <3240798675 ms>StrArrPosBind pos 11 Charset Id : 873
    <3240798679 ms>ORA-6550 Execute ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PL/SQL: Statement ignored
    <3240798680 ms>/pls/apex/wwv_flow.show HTTP-404 ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PL/SQL: Statement ignored
    <3240798680 ms>(wpu.c,595) longjumping back to the beginning
    <3240798680 ms>(wpu.c,458) cleaning up before longjmp
    <3240798680 ms>(wpu.c,462) doing a rollback
    <3240798680 ms>(wpcs.c, 77) Executed 'rollback' (rc=0)
    <3240798680 ms>(wpcs.c, 77) Executed 'begin dbms_session.reset_package; end;' (rc=0)
    <3240798680 ms>(wpd.c,1820) Going to close cursor
    <3240798680 ms>DeinitCursor
    <3240798680 ms>(wpx.c,693) Shutdown has been called
    <3240798680 ms>(wpx.c,705) Going to logoff
    <3240798680 ms>Logoff: Pooling this connection
    <3240798680 ms>[ReqEndtime: 6/Feb/2008:16:14:06]
    <3240798680 ms>[ReqExecTime: 13 ms]
    <3240796167 ms>[ReqStartTime: 6/Feb/2008:16:23:03]
    <3240796167 ms>Request ID ReqID:528620_1202314983
    <3240796167 ms>Connecting to database with connect string : "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=mohawk)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=htmldb_p.world)))"
    <3240796167 ms>OpenCursor
    <3240796167 ms>(wpd.c,1765) Logged in as (unknown)
    <3240796168 ms>(wpx.c,598) Going to select...
    <3240796168 ms>(wpx.c,652) Have been asked to execute a request
    <3240796168 ms>(wppa.c,334) Building Arglist based on Parsed Content from WRB
    <3240796168 ms>(wppa.c,1016) Enter ParseUrlData
    <3240796168 ms>POST
    <3240796168 ms>(wpu.c,257) Attempting to read 162 bytes
    <3240796168 ms>(wpu.c,262) We read 162, had 0, to get 0 bytes
    <3240796168 ms>[headers begin]
    <3240796168 ms>[headers end]
    <3240796168 ms>p_request=APPLICATION_PROCESS%3Dget_Level23XML&p_instance=1776222419881214&p_flow_id=1122&p_flow_step_id=0&p_arg_names=TEMPORARY_ITEM&p_arg_values=Balance%20query
    <3240796168 ms>[form_data]
    <3240796168 ms>p_request=APPLICATION_PROCESS%3Dget_Level23XML&p_instance=1776222419881214&p_flow_id=1122&p_flow_step_id=0&p_arg_names=TEMPORARY_ITEM&p_arg_values=Balance%20query
    <3240796168 ms>(wppa.c,1523) indx = 6, entryCnt = 6
    <3240796168 ms>(wppa.c,1844) Listing distinct actual names:
    <3240796168 ms>(wppa.c,1846) p_request
    <3240796168 ms>(wppa.c,1846) p_instance
    <3240796168 ms>(wppa.c,1846) p_flow_id
    <3240796168 ms>(wppa.c,1846) p_flow_step_id
    <3240796168 ms>(wppa.c,1846) p_arg_names
    <3240796168 ms>(wppa.c,1846) p_arg_values
    <3240796168 ms>(wppa.c,1848) Listing actuals of array with large entries:
    <3240796168 ms>(wppa.c,1853) Listing distinct actual names and values:
    <3240796168 ms>(wppa.c,1885) p_request, type = 0, value (35) = APPLICATION_PROCESS=get_Level23XML
    <3240796168 ms>(wppa.c,1885) p_instance, type = 0, value (17) = 1776222419881214
    <3240796168 ms>(wppa.c,1885) p_flow_id, type = 0, value (5) = 1122
    <3240796168 ms>(wppa.c,1885) p_flow_step_id, type = 0, value (2) = 0
    <3240796168 ms>(wppa.c,1885) p_arg_names, type = 0, value (15) = TEMPORARY_ITEM
    <3240796168 ms>(wppa.c,1885) p_arg_values, type = 0, value (14) = Balance query
    <3240796168 ms>(wppa.c,429) Arglist built, 6 unique entries
    <3240796168 ms>(wpx.c,659) Going to wpprodb_OciDoBlock...
    <3240796168 ms>(wpd.c,2750) Cache enabled. Gathering cache information.
    <3240796168 ms>(wpd.c,2768) Language for this request is en-gb
    <3240796168 ms>(wpd.c,2819) Using user APEX_PUBLIC_USER for caching.
    <3240796168 ms>cache: Checking for user level hit
    <3240796168 ms>cache: Cache MISS user - /u01/app/oracle/product/10.2.0.1_html/Apache/modplsql/cache/plsql/022/4760
    <3240796168 ms>cache: Checking for system level hit
    <3240796168 ms>cache: Cache MISS system - /u01/app/oracle/product/10.2.0.1_html/Apache/modplsql/cache/plsql/sys/341/1694
    <3240796168 ms>(wppr.c,460) start working with wwv_flow.show
    <3240796168 ms>(wppr.c,1164) The CALL block: len=1115, bind_count=14
    declare
    rc__ number;
    start_time__ binary_integer;
    simple_list__ owa_util.vc_arr;
    complex_list__ owa_util.vc_arr;
    begin
    start_time__ := dbms_utility.get_time;
    owa.init_cgi_env(:n__,:nm__,:v__);
    htp.HTBUF_LEN := 63;
    null;
    null;
    simple_list__(1) := 'sys.%';
    simple_list__(2) := 'dbms\_%';
    simple_list__(3) := 'utl\_%';
    simple_list__(4) := 'owa\_%';
    simple_list__(5) := 'owa.%';
    simple_list__(6) := 'htp.%';
    simple_list__(7) := 'htf.%';
    simple_list__(8) := 'wpg_docload.%';
    if ((owa_match.match_pattern('wwv_flow.show', simple_list__, complex_list__, true))) then
    rc__ := 2;
    else
    null;
    null;
    wwv_flow.show(p_request=>:p_request,p_instance=>:p_instance,p_flow_id=>:p_flow_id,p_flow_step_id=>:p_flow_step_id,p_arg_names=>:p_arg_names,p_arg_values=>:p_arg_values);
    if (wpg_docload.is_file_download) then
    rc__ := 1;
    wpg_docload.get_download_file(:doc_info);
    null;
    null;
    null;
    commit;
    else
    rc__ := 0;
    null;
    null;
    null;
    commit;
    owa.get_page(:data__,:ndata__);
    end if;
    end if;
    :rc__ := rc__;
    :db_proc_time__ := dbms_utility.get_time - start_time__;
    end;
    <3240796168 ms>(wppr.c,520) Pl/sql block parsed...
    <3240796168 ms>(wpdenv.c,1527) CGI Environment has 30 vars. Max name len 128, Max Value Len 128
    <3240796168 ms> PLSQL_GATEWAY(14)=(6)WebDb
    <3240796168 ms> GATEWAY_IVERSION(17)=(2)3
    <3240796168 ms> SERVER_SOFTWARE(16)=(60)Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server
    <3240796168 ms> GATEWAY_INTERFACE(18)=(8)CGI/1.1
    <3240796168 ms> SERVER_PORT(12)=(5)7777
    <3240796168 ms> SERVER_NAME(12)=(22)mohawk.ventura-uk.com
    <3240796168 ms> REQUEST_METHOD(15)=(5)POST
    <3240796168 ms> PATH_INFO(10)=(15)/wwv_flow.show
    <3240796168 ms> SCRIPT_NAME(12)=(10)/pls/apex
    <3240796168 ms> REMOTE_ADDR(12)=(12)10.0.10.222
    <3240796168 ms> SERVER_PROTOCOL(16)=(9)HTTP/1.1
    <3240796168 ms> REQUEST_PROTOCOL(17)=(5)HTTP
    <3240796168 ms> REMOTE_USER(12)=(17)APEX_PUBLIC_USER
    <3240796168 ms> HTTP_CONTENT_LENGTH(20)=(4)162
    <3240796168 ms> HTTP_CONTENT_TYPE(18)=(34)application/x-www-form-urlencoded
    <3240796168 ms> HTTP_USER_AGENT(16)=(75)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    <3240796168 ms> HTTP_HOST(10)=(12)mohawk:7777
    <3240796168 ms> HTTP_ACCEPT(12)=(4)*/*
    <3240796168 ms> HTTP_ACCEPT_ENCODING(21)=(14)gzip, deflate
    <3240796168 ms> HTTP_ACCEPT_LANGUAGE(21)=(6)en-gb
    <3240796168 ms> HTTP_REFERER(13)=(61)http://mohawk:7777/pls/apex/f?p=1122:1:1776222419881214:::::
    <3240796168 ms> HTTP_ORACLE_ECID(17)=(36)1202314983:10.30.96.8:528620:0:63,0
    <3240796168 ms> WEB_AUTHENT_PREFIX(19)=(1)
    <3240796168 ms> DAD_NAME(9)=(5)apex
    <3240796168 ms> DOC_ACCESS_PATH(16)=(5)docs
    <3240796168 ms> DOCUMENT_TABLE(15)=(23)wwv_flow_file_objects$
    <3240796168 ms> PATH_ALIAS(11)=(1)
    <3240796168 ms> REQUEST_CHARSET(16)=(9)AL32UTF8
    <3240796168 ms> REQUEST_IANA_CHARSET(21)=(6)UTF-8
    <3240796168 ms> SCRIPT_PREFIX(14)=(5)/pls
    <3240796168 ms>StrArrPosBind pos 2 Charset Id : 873
    <3240796168 ms>StrArrPosBind pos 3 Charset Id : 873
    <3240796168 ms>StrArrPosBind pos 11 Charset Id : 873
    <3240796174 ms>Execute: ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PL/SQL: Statement ignored
    <3240796174 ms>(wppr.c,640) Execute:declare
    objnum NUMBER;
    objtyp NUMBER;
    prename VARCHAR2(31);
    name VARCHAR(31);
    subname VARCHAR(31);
    dblnk VARCHAR(31);
    begin
    dbms_utility.name_resolve(:objname, 1, prename, name, subname,
    dblnk, objtyp, objnum);
    if (name is null) then
    sys.wpiutl.subpparam(objnum,subname,null,prename,:2,:3,:4,:5,:6,:7);
    else
    sys.wpiutl.subpparam(objnum,name,subname,prename,:2,:3,:4,:5,:6,:7);
    end if;
    exception
    when others then :5 := 1;
    end;
    <3240796174 ms>(wppr.c,660) 6 parameter names
    <3240796174 ms>StrArrPosBind pos 2 Charset Id : 873
    <3240796174 ms>StrArrPosBind pos 3 Charset Id : 873
    <3240796174 ms>StrArrPosBind pos 4 Charset Id : 873
    <3240796176 ms>(wppr.c,704) misdefl=0, nenamei=0
    <3240796176 ms>(wppr.c,744) print list of name, types, typeflags
    <3240796176 ms>(wppr.c,797) parameter name: P_REQUEST, type: VARCHAR2, typeflags: 000
    <3240796176 ms>(wppr.c,797) parameter name: P_INSTANCE, type: VARCHAR2, typeflags: 000
    <3240796176 ms>(wppr.c,797) parameter name: P_FLOW_ID, type: VARCHAR2, typeflags: 000
    <3240796176 ms>(wppr.c,797) parameter name: P_FLOW_STEP_ID, type: VARCHAR2, typeflags: 000
    <3240796176 ms>(wppr.c,759) Array graduation (1=>4, 15=>32)
    <3240796176 ms>(wppr.c,797) parameter name: P_ARG_NAMES, type: FLOWS_030000.WWV_FLOW_GLOBAL.VC_ARR2, typeflags: 001
    <3240796176 ms>(wppr.c,759) Array graduation (1=>4, 14=>32)
    <3240796176 ms>(wppr.c,797) parameter name: P_ARG_VALUES, type: FLOWS_030000.WWV_FLOW_GLOBAL.VC_ARR2, typeflags: 001
    <3240796176 ms>(wppr.c,520) Pl/sql block parsed...
    <3240796176 ms>(wpdenv.c,1527) CGI Environment has 30 vars. Max name len 128, Max Value Len 128
    <3240796176 ms> PLSQL_GATEWAY(14)=(6)WebDb
    <3240796176 ms> GATEWAY_IVERSION(17)=(2)3
    <3240796176 ms> SERVER_SOFTWARE(16)=(60)Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server
    <3240796176 ms> GATEWAY_INTERFACE(18)=(8)CGI/1.1
    <3240796176 ms> SERVER_PORT(12)=(5)7777
    <3240796176 ms> SERVER_NAME(12)=(22)mohawk.ventura-uk.com
    <3240796176 ms> REQUEST_METHOD(15)=(5)POST
    <3240796176 ms> PATH_INFO(10)=(15)/wwv_flow.show
    <3240796176 ms> SCRIPT_NAME(12)=(10)/pls/apex
    <3240796176 ms> REMOTE_ADDR(12)=(12)10.0.10.222
    <3240796176 ms> SERVER_PROTOCOL(16)=(9)HTTP/1.1
    <3240796176 ms> REQUEST_PROTOCOL(17)=(5)HTTP
    <3240796176 ms> REMOTE_USER(12)=(17)APEX_PUBLIC_USER
    <3240796176 ms> HTTP_CONTENT_LENGTH(20)=(4)162
    <3240796176 ms> HTTP_CONTENT_TYPE(18)=(34)application/x-www-form-urlencoded
    <3240796176 ms> HTTP_USER_AGENT(16)=(75)Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    <3240796176 ms> HTTP_HOST(10)=(12)mohawk:7777
    <3240796176 ms> HTTP_ACCEPT(12)=(4)*/*
    <3240796176 ms> HTTP_ACCEPT_ENCODING(21)=(14)gzip, deflate
    <3240796176 ms> HTTP_ACCEPT_LANGUAGE(21)=(6)en-gb
    <3240796176 ms> HTTP_REFERER(13)=(61)http://mohawk:7777/pls/apex/f?p=1122:1:1776222419881214:::::
    <3240796176 ms> HTTP_ORACLE_ECID(17)=(36)1202314983:10.30.96.8:528620:0:63,0
    <3240796176 ms> WEB_AUTHENT_PREFIX(19)=(1)
    <3240796176 ms> DAD_NAME(9)=(5)apex
    <3240796176 ms> DOC_ACCESS_PATH(16)=(5)docs
    <3240796176 ms> DOCUMENT_TABLE(15)=(23)wwv_flow_file_objects$
    <3240796176 ms> PATH_ALIAS(11)=(1)
    <3240796176 ms> REQUEST_CHARSET(16)=(9)AL32UTF8
    <3240796176 ms> REQUEST_IANA_CHARSET(21)=(6)UTF-8
    <3240796176 ms> SCRIPT_PREFIX(14)=(5)/pls
    <3240796176 ms>StrArrPosBind pos 2 Charset Id : 873
    <3240796176 ms>StrArrPosBind pos 3 Charset Id : 873
    <3240796176 ms>StrArrPosBind pos 8 Charset Id : 873
    <3240796176 ms>StrArrPosBind pos 9 Charset Id : 873
    <3240796176 ms>StrArrPosBind pos 11 Charset Id : 873
    <3240796181 ms>ORA-6550 Execute ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PL/SQL: Statement ignored
    <3240796181 ms>/pls/apex/wwv_flow.show HTTP-404 ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PLS-00306: wrong number or types of arguments in call to 'SHOW'
    ORA-06550: line 25, column 3:
    PL/SQL: Statement ignored
    <3240796181 ms>(wpu.c,595) longjumping back to the beginning
    <3240796181 ms>(wpu.c,458) cleaning up before longjmp
    <3240796181 ms>(wpu.c,462) doing a rollback
    <3240796181 ms>(wpcs.c, 77) Executed 'rollback' (rc=0)
    <3240796182 ms>(wpcs.c, 77) Executed 'begin dbms_session.reset_package; end;' (rc=0)
    <3240796182 ms>(wpd.c,1820) Going to close cursor
    <3240796182 ms>DeinitCursor
    <3240796182 ms>(wpx.c,693) Shutdown has been called
    <3240796182 ms>(wpx.c,705) Going to logoff
    <3240796182 ms>Logoff: Pooling this connection
    <3240796182 ms>[ReqEndtime: 6/Feb/2008:16:23:03]
    <3240796182 ms>[ReqExecTime: 15 ms]

    Loanshark, this forum is for Oracle Portal caching questions, try posting your question in the APEX forum.
    Cheers,
    Mick.

  • Csv upload -- suggestion needed with non-English character in csv file

    <p>Hi All,</p>
    I have a process which uploads a csv file into a table. It works with the normal english characters. In case of non-English characters in the csv file it doesn't populate the actual columns.
    My csv file content is
    <p></p>First Name | Middle Name | Last Name
    <p><span style="background-color: #FF0000">José</span> | # | Reema</p>
    <p>Sam | # | Peter</p>
    <p>Out put is coming like : (the last name is coming as blank )</p>
    First Name | Middle Name | Last Name
    <p><span style="background-color: #FF0000">Jos鬣</span> | Reema | <span style="background-color: #FF0000"> blank </span></p>
    <p>Sam | # | Peter</p>
    http://apex.oracle.com/pls/otn/f?p=53121:1
    workspace- gil_dev
    user- apex
    password- apex12
    Thanks for your help.
    Manish

    Manish,
    PROCEDURE csv_to_array (
          -- Utility to take a CSV string, parse it into a PL/SQL table
          -- Note that it takes care of some elements optionally enclosed
          -- by double-quotes.
          p_csv_string   IN       VARCHAR2,
          p_array        OUT      wwv_flow_global.vc_arr2,
          p_separator    IN       VARCHAR2 := ';'
       IS
          l_start_separator   PLS_INTEGER    := 0;
          l_stop_separator    PLS_INTEGER    := 0;
          l_length            PLS_INTEGER    := 0;
          l_idx               BINARY_INTEGER := 0;
          l_quote_enclosed    BOOLEAN        := FALSE;
          l_offset            PLS_INTEGER    := 1;
       BEGIN
          l_length := NVL (LENGTH (p_csv_string), 0);
          IF (l_length <= 0)
          THEN
             RETURN;
          END IF;
          LOOP
             l_idx := l_idx + 1;
             l_quote_enclosed := FALSE;
             IF SUBSTR (p_csv_string, l_start_separator + 1, 1) = '"'
             THEN
                l_quote_enclosed := TRUE;
                l_offset := 2;
                l_stop_separator :=
                       INSTR (p_csv_string, '"', l_start_separator + l_offset, 1);
             ELSE
                l_offset := 1;
                l_stop_separator :=
                   INSTR (p_csv_string,
                          p_separator,
                          l_start_separator + l_offset,
                          1
             END IF;
             IF l_stop_separator = 0
             THEN
                l_stop_separator := l_length + 1;
             END IF;
             p_array (l_idx) :=
                (SUBSTR (p_csv_string,
                         l_start_separator + l_offset,
                         (l_stop_separator - l_start_separator - l_offset
             EXIT WHEN l_stop_separator >= l_length;
             IF l_quote_enclosed
             THEN
                l_stop_separator := l_stop_separator + 1;
             END IF;
             l_start_separator := l_stop_separator;
          END LOOP;
       END csv_to_array;and
    PROCEDURE get_records (p_clob IN CLOB, p_records OUT varchar2_t)
       IS
          l_record_separator   VARCHAR2 (2) := CHR (13) || CHR (10);
          l_last               INTEGER;
          l_current            INTEGER;
       BEGIN
          -- SIf HTMLDB has generated the file,
          -- it will be a Unix text file. If user has manually created the file, it
          -- will have DOS newlines.
          -- If the file has a DOS newline (cr+lf), use that
          -- If the file does not have a DOS newline, use a Unix newline (lf)
          IF (NVL (DBMS_LOB.INSTR (p_clob, l_record_separator, 1, 1), 0) = 0)
          THEN
             l_record_separator := CHR (10);
          END IF;
          l_last := 1;
          LOOP
             l_current := DBMS_LOB.INSTR (p_clob, l_record_separator, l_last, 1);
             EXIT WHEN (NVL (l_current, 0) = 0);
             p_records (p_records.COUNT + 1) :=
                REPLACE (DBMS_LOB.SUBSTR (p_clob, l_current - l_last, l_last),
             l_last := l_current + LENGTH (l_record_separator);
          END LOOP;
       END get_records;Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://htmldb.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • Enter a password for the ADMIN user,Error in installing Oracle Apex,

    hi, everybody,
    Greetings,
    Iam trying to install oracle Apex, By coming this step it shows this error, Could you Please help me to solve this error.
    SQL> @apxchpwd.sql
    Enter a value below for the password for the Application Express ADMIN user.
    Enter a password for the ADMIN user []
    Session altered.
    ...changing password for ADMIN
    l_error_lines wwv_flow_global.vc_arr2;
    ERROR at line 3:
    ORA-06550: line 3, column 28:
    PLS-00201: identifier 'WWV_FLOW_GLOBAL.VC_ARR2' must be declared
    ORA-06550: line 3, column 28:
    PL/SQL: Item ignored
    ORA-06550: line 5, column 5:
    PLS-00201: identifier 'WWV_FLOW_SECURITY.G_SECURITY_GROUP_ID' must be declared
    ORA-06550: line 5, column 5:
    PL/SQL: Statement ignored
    ORA-06550: line 6, column 5:
    PLS-00201: identifier 'WWV_FLOW_SECURITY.G_USER' must be declared
    ORA-06550: line 6, column 5:
    PL/SQL: Statement ignored
    ORA-06550: line 7, column 5:
    PLS-00201: identifier 'WWV_FLOW_SECURITY.G_IMPORT_IN_PROGRESS' must be declared
    ORA-06550: line 7, column 5:
    PL/SQL: Statement ignored
    ORA-06550: line 15, column 31:
    PLS-00201: identifier 'WWV_FLOW_SECURITY.STRONG_PASSWORD_VALIDATION' must be
    declared
    ORA-06550: line 15, column 5:
    PL/SQL: Statement ignored
    ORA-06550: line 22, column 35:
    PLS-00201: identifier 'WWV_FLOW_UTILITIES.STRIPHTML' must be declared
    ORA-06550: line 22, column 9:
    PL/SQL: Statement ignored
    ORA-06550: line 25, column 9:
    PLS-00320: the declaration of the type o

    suresh.m2015,
    It's going to be impossible for anyone in this forum to help with your issue if you don't provide any more detail about your environment and Apex installation. However, from your post it looks like the Apex database objects are missing or invalid.
    Did you follow the Apex installation guide step by step? For example, did you run apexins.sql?
    It's important to follow the documentation. The script you are running to change the admin user password should not be run until after the Apex installation is complete.
    --Keith Malay                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for

  • Airport no longer connects to OPEN wireless networks

    Lots of people seem to think that their airport keeps dropping the connection to OPEN wireless networks because of the 2008-001 airport update. That is probably only true for a Macbook 2,1 (aka Macbook Core 2 Duo). I had the issue on my Macbook 1,1 (

  • Message mapping execution?

    Hi friends,       The message processing(pipeline steps) happens in the abap stack,then how request message mapping(one of the pipeline step)happens in abap stack,as message mapping should execute in java stack, Thanks, Suresh.

  • Installation issue with Oracle 10G Express Edition

    I have installed both this product and the Enterprise Manager in the past (on the same laptop that I am using now), however when I try to download the file for my current class I get a dialog box that tells me that the file type is unknown and Window

  • Can I stream live internet TV over ATV

    I have a TV programme (Rugby World Cup) that I can only receive over internet. I would like to view this on the big TV. Can I use the ATV 2 to stream this somehow. Or can I have my iMac screen streamed direct to my TV screen using the Apple TV 2 or o

  • How to Implement a screen exit to a standard SAP transaction

    Hi All, Can any body give How to Implement a screen exit to a standard SAP transaction?? Regards, AK