Line break as SQL terminator?

Hi,
I typically build up a large worksheet of SQL statements and it is a pain in the neck to have all of them as properly formed SQL along with a semi-colon. Sometimes also plain text is pasted in to be used as literal values in SQL but in itself is not a statement.
Is there anyway to for SQLDev to treat a return with blank line in the same way it would a semi-colon? If the SQL is malformed I want it to leave that whole block alone and just execute the current block of SQL that the cursor resides in.
Brenden

If you highlight (select) the statement or part of it, only that will be parsed and executed.
If you don't, you do understand sqldev has to parse the whole block to know the beginning and end of the statement. Without semi-colons, it assumes the statement continues...
Have fun,
K.

Similar Messages

  • Why would white space and line breaks in sql query increase runtime

    Using 11.2.0.3.0 on unix sprac server, 8 cpus 32 cores 12TB storage. We have 16 batch servers doing inserts and ~100 users doing mostly queries.
    We have a wierd issue,  we have a long query that takes 30 seconds to run 1st time then 10-20 secs every other time. Based on knowledge of DB we expected it to take a lot less.  Then a developer reformatted it by taking removing extra white space and line breaks.  all of sudden query takes 6 secs first time and 0.8 every other time.  we tripled checked to ensure they are identical and that only difference is white space and line breaks.  We tried it with SQLDeveloper, TOAD, SQLPLUS, from out desktops, appserver. we could reproduce it every time, with white space 10-20 secs without it 0.8 secs.  Query is 200 lines long with white space 30 without it.
    Why would having white space make such a dramatic difference?  because the query is longer eventhough its identical?  We checked parsing times, etc, no difference.  Is there some network setting, oracle parameter, sqlnet setting?  We spent hours looking on google and found nother
    Slow:
      SELECT grt_student.student_id                                                                                                                                                                                                 
    AS student_id,
      grt_student.last_name                                                                                                                                                                                                       
    AS last_name,
      grt_student.first_name                                                                                                                                                                                                      
    AS first_name,
      grt_buyerinstance.buyerinstance_id                                                                                                                                                                                            
    AS buyerinstance_id,
      grt_buyerinstance.buyerfamily_id                                                                                                                                                                                              
    AS buyerfamily_id,
      grt_buyer.buyerfamily_acronym                                                                                                                                                                                                 
    AS buyerfamily_acronym,
      grt_reporting_utls_pkg.convert_gmrt_battery(grt_buyerinstance.buyerfamily_id,grt_buyer.battery)                                                                                                                                
    AS battery,
    fast:
    SELECT grt_student.student_id 
    AS student_id,  grt_student.last_name
    AS last_name, grt_student.first_name   AS first_name,  grt_buyerinstance.buyerinstance_id   AS buyerinstance_id,  grt_buyerinstance.buyerfamily_id
    AS buyerfamily_id,
      grt_buyer.buyerfamily_acronym  AS buyerfamily_acronym,  grt_reporting_utls_pkg.convert_gmrt_battery(grt_buyerinstance.buyerfamily_id,grt_buyer.battery)   AS battery,

    Do you have some sort of horrific network connection between the client and the database such that it would take 8.5 seconds to transmit a few kb of SQL to the server?  That seems most unlikely.
    How are you determining the query plan?  Are you absolutely sure that both SQL statements have the same plan_hash_value when they are actually executed (not just when you generate a query plan without executing it)?  What are the differences in wait events when you execute the two?
    The sql_id will change when you add or remove whitespace.  There are various methods of modifying query plans that are tied to a sql_id.  My wager would be that you have a profile/ outline/ etc. that is not there for the reformatted one which is causing a query plan difference.  My next guess is that you have an accepted plan for the old statement, you haven't set up a process to let the plan evolve, and the reformatted statement starts with the plan that the old statement would get if you allowed the plan to evolve.
    Justin

  • Unexpected line breaks in output of a sql query

    Hi,
    I have a query which looks like:
    set pages 0
    set feed off
    set newp 0
    set lines 350
    select LPAD(SUBSTR(COLUMN1,1,23),23),LPAD(SUBSTR(COLUMN2,1,42),42), SUBSTR(TO_CHAR(START_TIME,'HH24:MI:SS'),1,8),SUBSTR(TO_CHAR(END_TIME,'HH24:MI:SS'),1,8)
    FROM TABLE1;
    When executed using SQL*Plus this query puts a line break after each column and hence I get a record on several rows on the screen.
    But the last two columns are printed on the same line. I suspect the LPAD is causing some problem.
    I have two databases. It works perfectly on one and not on the other.
    Is there a oracle parameter due to which the result is affected?
    T&R,
    BRK

    Try this:
    set pages 0 feed off newp 0 lines 350 trims on
    select LPAD(SUBSTR(COLUMN1,1,23),23)
         , LPAD(SUBSTR(COLUMN2,1,42),42)
         , TO_CHAR(START_TIME,'HH24:MI:SS')
         , TO_CHAR(END_TIME,'HH24:MI:SS')
    FROM TABLE1;

  • Convert rows to columns and put line break in between using t-sql

    Hi,
    I have a table with 5 columns..and my source data looks like this..
    RecordID  ID    Display          AddressType   EmailAddress
        1           1      GeneratedBy       From           
    [email protected]
        1           1      ReceivedBy         To               
    [email protected]
        1           1      ReceivedBy         To              
    [email protected]
        2           1
        3           1      GeneratedBy       From         
    [email protected]
        3           1      GeneratedBy       From          [email protected]
        3           1      ReceivedBy         To             
    [email protected]
    I need  t-sql to show output as..
    RecordID   ID    FullDisplay
       1       1     GeneratedBy  From -
    [email protected]  < CHAR(13) - Need Line Break here so that it goes to 2nd line>
                       ReceivedBy   To   - 
    [email protected] ; To -
    [email protected]
       2       1      Null
       3       1      GeneratedBy From -
    [email protected] ; From -
    [email protected]  < CHAR(13) - Need Line Break here so that it goes to 2nd line>
                      ReceivedBy  To   -
    [email protected]
    Display field will have 3 values - "GeneratedBy" , "ReceivedBy"  or Null
    AddresType field will have  3 values - "From" , "To" and Null.
    In the above example, Those 7 records belongs to ID=1.
    Whenever RecordID is same I want to show everything in one line with line breaks in between.
    In the above example RecordID=1 has 3 rows, display it as 1 row. But Whenever 'ReceivedBy' is there for same recordID put a line break before "ReceivedBy"
    create Statement:
    Create Table SampleTest
    (RecordID int null, ID int null , Dispplay varchar(20) null, AddressType varchar(6) null , EmailAddress Varchar(25) null)
    Insert Statement:
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (1,1,'GeneratedBy','From','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (1,1,'ReceivedBy','To','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (1,1,'ReceivedBy','To','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (2,1,  Null,Null,Null)
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (3,1,'GeneratedBy','From','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (3,1,'GeneratedBy','From','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (3,1,'ReceivedBy','To','[email protected]')
     Thanks!
    sql

    Try below
    drop table SampleTest
    GO
    Create Table SampleTest
    (RecordID int null, ID int null , Display varchar(20) null, AddressType varchar(6) null , EmailAddress Varchar(25) null)
    --Insert Statement:
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (1,1,'GeneratedBy','From','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (1,1,'ReceivedBy','To','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (1,1,'ReceivedBy','To','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (2,1, Null,Null,Null)
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (3,1,'GeneratedBy','From','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (3,1,'GeneratedBy','From','[email protected]')
    Insert into SampleTest (RecordID ,ID,Display,AddressType,EmailAddress) values (3,1,'ReceivedBy','To','[email protected]')
    with CTE1 as
    select ROW_NUMBER() over(PARTITION by RecordID ,ID,Display order by EmailAddress)rno,* From SampleTest
    ), CTE2 as (
    select RecordID ,ID,'GeneratedBy '+ STUFF(( SELECT '; From - ' + EmailAddress AS [text()]
    FROM CTE1 b
    WHERE
    a.RecordID=b.RecordID and a.ID=b.ID and b.Display = 'GeneratedBy'
    FOR XML PATH('')
    ), 1, 2, '' ) GeneratedBy,
    'ReceivedBy '+ STUFF(( SELECT '; To - ' + EmailAddress AS [text()]
    FROM CTE1 b
    WHERE
    a.RecordID=b.RecordID and a.ID=b.ID and b.Display = 'ReceivedBy'
    FOR XML PATH('')
    ), 1, 2, '' ) ReceivedBy
    From CTE1 a
    group by RecordID ,ID
    select RecordID ,ID,GeneratedBy +CHAR(13)+ ReceivedBy as FullDisplay from CTE2
    Thanks
    Saravana Kumar C

  • How to line break in an SQL Report

    I have a simple SQL report with many columns that make the window very wide and the use has to scroll horizontally quite a lot.
    How can I make the line break after some column?
    Can someone give me a live example for that?

    Custom report template then is your answer.. Without seeing your initial report it would be hard to give you the code fully. However, if you open the standard report template for your theme, you could save it as a new template and edit it accordingly. You would find the column you wish to break on and create a new <tr> .. </tr> under the <td> definition..
    Thank you,
    Tony Miller
    Webster, TX

  • Unwanted Line Breaks in PL/SQL CODE after 'CREATE OR REPLACE' statements

    Does anybody know how to keep SQL Developer from automatically editing PL/SQL code and adding line breaks after 'CREATE OR REPLACE' statements?
    It keeps taking:
    CREATE OR REPLACE PACKAGE DEVELOPER AUTHID DEFINER
    And turns it into:
    create or replace
    package developer AUTHID DEFINER
    This unwanted linebreak causes our autodeployment processes to break.
    Thanks,
    Michael Dunn
    University of Notre Dame
    Edited by: user9133268 on Feb 21, 2012 8:00 AM

    Hi Michael,
    I believe nothing for this issue has progressed since it was asked here:
    2.1 RC Extra Line Breaks
    As there may be approval for some planned improvements to the SQL Formatter feature in 3.2, I logged an enhancement request for you:
    Bug 13744858 - FORUM: UNWANTED LINE BREAK AFTER CREATE OR REPLACE SYNTAX
    Regards,
    Gary
    SQL Developer Team
    Edited by: Gary Graham on Feb 21, 2012 4:19 PM
    But if you have control over your auto-deployment process code, it might be quicker to enhance that to deal with CREATE OR REPLACE on the same or the preceding line. Also, note that if you edit the package DDL to put the CREATE OR REPLACE on the same line with the package name in the code editor, then immediately use Export or Save Package Spec and Body to save it to disk, then PACKAGE <name> will appear on the same line as the CREATE OR REPLACE syntax.

  • Line break in pl/sql block

    Here's my code, which indeed, may be cumbersome, but works:
    declare
    v_id NUMBER;
    v_iso VARCHAR2(30);
    v_title VARCHAR2(60);
    v_approval_req VARCHAR2(10);
    v_approved VARCHAR2(10);
    v_job_desc VARCHAR2(60);
    v_user VARCHAR2(30);
    v_get_user VARCHAR2(60) := :P101_USERNAME;
    v_get_user2 VARCHAR2(60) := :P101_USERNAME;
    v_num_docs NUMBER;
    v_num_rejected NUMBER;
    v_count NUMBER := 0;
    BEGIN
    CASE v_get_user
    WHEN :P101_USERNAME THEN
    SELECT COUNT(*) into v_num_docs
    FROM doc_info, sh_job_description, sh_employees
    WHERE doc_info.owner = sh_job_description.job_desc
    and sh_job_description.job_desc_id = sh_employees.job_desc_id
    and UPPER(doc_info.approval_req) = 'YES'
    and (doc_info.approved is null
    or UPPER(doc_info.approved) = 'NO')
    and sh_employees.user_name = :P101_USERNAME
    and sh_employees.user_name <> 'SH_LOCAL';
    if v_num_docs  > 0  then
    htp.bold('You have '||v_num_docs||' document(s) to approve.  Please click on the Approve Documents button below to do so.');
    end if;
    END CASE;
    CASE v_get_USER2
    WHEN :P101_USERNAME THEN
    SELECT COUNT(*) into v_num_rejected
    FROM doc_info, sh_job_description, sh_employees
    WHERE doc_info.owner = sh_job_description.job_desc
    and sh_job_description.job_desc_id = sh_employees.job_desc_id
    and UPPER(doc_info.approval_req) = 'YES'
    and UPPER(doc_info.approved) = 'REJECTED'
    and sh_employees.user_name = :P101_USERNAME
    and sh_employees.user_name <> 'SH_LOCAL';
    if v_num_rejected  > 0  then 
    htp.bold('You have '||v_num_rejected ||' rejected document(s) that have had updates made per your request.  Please click on the Approve Documents button below to review the changes, then approve if all changes are accepted.');
    end if;
    END CASE;
    exception when others then null;
    END;Here's the output:
    You have 4 document(s) to approve. Please click on the Approve Documents button below to do so. *\n*You have 1 rejected document(s) that have had updates made per your request. Please click on the Approve Documents button below to review the changes, then approve if all changes are accepted. I have entered a bold /n where I need a line break. Silly, but I've tried many combos of \n and the break with a br and this < and this > (I can't get the real thing to post), concatenating and not, but haven't come up with it.
    Off to lunch now, back in an hour.
    TIA!!!!!

    userRRRYB wrote:
    Here's my codeFrom where? APEX version? Region? Process? Example on apex.oracle.com?
    Fixed. I split it up into two different items, created a region for each, and placed the regions in position 1.Sounds like a lot of extra work.
    I have entered a bold /n where I need a line break. Silly, but I've tried many combos of \n and the break with a br and this < and this > (I can't get the real thing to post), concatenating and not, but haven't come up with it.
    How about instead of the \n, trying a chr(10) and possibly adding a chr(13)?
    I've tried your exampleand htp.p(chr(13)); and suggestions?The HTML specification instructs user agents to collapse white space characters, so however many spaces, tabs, new lines, or carriage returns you add, using whatever notation, only a single space will actually be displayed.
    >
    htp.bold('<p>You have '||v_num_docs||' document(s) to approve.  Please click on the Approve Documents button below to do so.</p>');
    htp.bold('<p>You have '||v_num_rejected ||' rejected document(s) that have had updates made per your request.  Please click on the Approve Documents button below to review the changes, then approve if all changes are accepted.</p>');It's also specified that inline elements can't contain block-level elements. <tt>b</tt> (as generated by <tt>htp.bold</tt>) is an inline element, while <tt>p</tt></a> is block-level.
    In 2011 don't use any <tt>htf/htp</tt> element methods: the HTML generated by these packages is based on an archaic, unadopted HTML version and produces mark-up that is not valid for the XHTML DOCTYPEs used in APEX 4.0 themes. APEX itself stopped using them years ago.
    Not knowing where in the page this information is intended to display, it's always safer to assume there is no open block-level container and provide one (such as <tt>div</tt> or <tt>p</tt>) in the emitted mark-up. Does
    htp.p('<p>You have '||v_num_docs||' document(s) to approve.  Please click on the Approve Documents button below to do so.</p>');
    htp.p('<p>You have '||v_num_rejected ||' rejected document(s) that have had updates made per your request.  Please click on the Approve Documents button below to review the changes, then approve if all changes are accepted.</p>');produce the required layout?
    exception when others then null;Disaster waiting to happen.
    http://tkyte.blogspot.com/2006/08/ouch-that-hurts.html
    http://tkyte.blogspot.com/2007/03/dreaded-others-then-null-strikes-again.html
    http://tkyte.blogspot.com/2008/01/why-do-people-do-this.html
    http://tkyte.blogspot.com/2008/06/when-others-then-null-redux.html

  • How to add a new line in SMS(Line Break).

    Hi All,
    I need to send SMS from PL\SQL Procedure
    The problem i have been facing is that the string being passed in as sms content is not parsing a newline character.
    It shows all content in one line.
    I need to break them in several lines.
    Give me a direction how to add a new line in SMS.
    Regards,
    Raj.

    Hi,
    Sure, Here it is
    CREATE OR REPLACE PROCEDURE APPS.AUTO_SMS_RTV_REPORT
    IS
    sender          VARCHAR2(1000);
    recipient     VARCHAR2(1000);
    message          VARCHAR2(4000);
    sub          VARCHAR2(1000)     := 'HELLO';
    dt1          varchar2(1000)     := to_char(sysdate,'DD-MON-YY');
    mailhost     VARCHAR2(30) := '10.7.7.xxx';     
    mail_conn     UTL_SMTP.CONNECTION;
    v_crlf VARCHAR2(2) := CHR(13)||CHR(10);
    CURSOR cur_Rejection_Records IS
                   SELECT DISTINCT
                        rt.VENDOR_SITE_ID               ,
                        pvs.email_address     VENDOR_MAIL_ID     ,
                        pvs.PHONE          vendor_contact_no ,
                        hre.EMAIL_ADDRESS     Employee_mail_id ,
                        hre.FULL_NAME
                   FROM apps.rcv_transactions      rt,
                        apps.po_vendors           pv,
                        apps.po_vendor_sites_all     pvs,
                        apps.mtl_transaction_reasons mtr,
                        apps.fnd_user          fu,
                        apps.hr_employees          hre     
                   WHERE transaction_type = 'RETURN TO VENDOR'
                   --AND        TRUNC(rt.transaction_date) = TRUNC(SYSDATE)
                   AND     rt.vendor_id          = pv.vendor_id
                   AND     rt.vendor_site_id     = pvs.vendor_site_id
                   AND     rt.REASON_ID          = mtr.REASON_ID(+)
                   AND fu.user_id          = rt.last_updated_by
                   AND hre.EMPLOYEE_ID     = fu.EMPLOYEE_ID
                   AND TRANSACTION_ID IN (
                                  11902189,
                                  11902253,
                                  11902148)
    BEGIN
         FOR rec_Rejection_Records IN cur_Rejection_Records
         LOOP
         Begin
              sender     := '<[email protected]>';
              recipient     := rec_Rejection_Records.vendor_contact_no || '@aaaa.com';
              mail_conn := utl_smtp.open_connection(mailhost, 8025);
              utl_smtp.helo(mail_conn, mailhost);
              utl_smtp.mail(mail_conn, sender);
              utl_smtp.rcpt(mail_conn, recipient);
              utl_smtp.DATA(     mail_conn,
                                  'Date: ' || TO_CHAR(SYSDATE, 'Dy, DD Mon YYYY hh24:mi:ss') || utl_tcp.crlf ||
                                  'From: ' || sender     || utl_tcp.crlf ||
                                  'Subject: '|| sub     || utl_tcp.crlf ||
                                  'To: ' || recipient || utl_tcp.crlf ||
                                  utl_tcp.crlf ||
                                  'Dear Supplier,'||CHR(10)|| utl_tcp.crlf ||'\\\0x0A'|| -- HERE I NEED LINE BREAK
                                  'Please.'|| utl_tcp.crlf                          
              DBMS_OUTPUT.PUT_LINE('Yep !!! SMS Sent Sucessfully :) ');
              utl_smtp.quit(mail_conn);
         EXCEPTION
              WHEN UTL_SMTP.PERMANENT_ERROR THEN
                        dbms_output.put_line('Error - ' || SQLCODE || ' - ' || SQLERRM);
              WHEN OTHERS THEN
                        dbms_output.put_line('Error - ' || SQLCODE || ' - ' || SQLERRM);
         END;
         END LOOP;
    END AUTO_SMS_RTV_REPORT;
    /

  • How to handle line break embeded inside CSV column

    Hi there,
    I am under the pressure to make it work. I already put this question on APEX forum, but on second thought, I think it relates more to PL/SQL rather than APEX since APEX 4.1 already have utility to handle CSV Upload.
    If you read it already in APEX forum, please ignore.
    I am sorry for that. Thanks for reading.
    I need to develop an app that allows user to upload CSV file to a interface table.
    The APEX version at my workplace is 4.0.2.
    I used the code from
    http://dbswh.webhop.net/htmldb/f?p=BLOG:READ:0::::ARTICLE:11000346061523
    It all works well till recently I find out
    If a column in a CSV file cotain a line break (or new line) e.g. (The tester copy and paste this text which has line break into a column in a spreadsheet)
    This is the first sentence.
    This is the second sentence.
    It will break the “This is the second sentence”. To a new column.
    The contents of the CSV viewed in Notepad look as below
    Assessment Date,Scheduled Date,Assessment Provider,Assessor Name,Court,First Name,Middle Name,Last Name,PRN Person Record Number,NHI Number,Defendant Attended Y/N,Is Dependent Y/N,Notes,Primary Ethnicity,"Ethnicity Other, please specify",Gender,Currently in Treatment Y/N,Substance of Concern 5,Other Substance Specified
    22/09/2012,,Provider Co Name,Warren Edgley,Wellington,,,Salty,2545554,dgsdf,ergerg,,"This is the first sentence.
    This is the second sentence.",Japanese,,Female,b,,
    Here is the code from the CSV UTIL, please help me to find out how can I replace the line break to a space so that the uploading process is correct.
      CREATE OR REPLACE PACKAGE BODY "CSV_UTIL"
    AS
         --strip the beginning and the end quotes, then replace double quotation with single
       FUNCTION de_quote (p_str IN VARCHAR2, p_enc_by IN VARCHAR2)
          RETURN VARCHAR2
       IS
       v_str VARCHAR2(32767) := p_str;
       BEGIN
          IF (p_enc_by IS NULL)
          THEN
             RETURN p_str;
          ELSE
            IF SUBSTR(p_str,-1) = p_enc_by THEN
               v_str := SUBSTR(p_str,1,LENGTH(p_str)-1);
            END IF;
            IF SUBSTR(p_str,1,1) = p_enc_by THEN
               v_str := SUBSTR(v_str,2);
            END IF; 
            RETURN REPLACE (v_str,
                             p_enc_by || p_enc_by,
                             p_enc_by
          END IF;
       END de_quote;
       PROCEDURE parse (p_str IN VARCHAR2, p_enc_by IN VARCHAR2, p_sep IN VARCHAR2)
       IS
          l_n          NUMBER   DEFAULT 1;
          l_in_quote   BOOLEAN  DEFAULT FALSE;
          l_ch         NCHAR (1);
          l_len        NUMBER   DEFAULT NVL (LENGTH (p_str), 0);
       BEGIN
          IF (l_len = 0)
          THEN
             RETURN;
          END IF;
          g_words := g_empty;
          g_words (1) := NULL;
          FOR i IN 1 .. l_len
          LOOP
             l_ch := SUBSTR (p_str, i, 1);
             IF (l_ch = p_enc_by)
             THEN
                l_in_quote := NOT l_in_quote;
             END IF;
             IF (l_ch = p_sep AND NOT l_in_quote)
             THEN
                l_n := l_n + 1;
                g_words (l_n) := NULL;
             ELSE
                g_words (l_n) := g_words (l_n) || l_ch;
             END IF;
          END LOOP;
          g_words (l_n) := de_quote (g_words (l_n), CHR(10));
          g_words (l_n) := de_quote (g_words (l_n), CHR(13));
          FOR i IN 1 .. l_n
          LOOP
             g_words (i) := de_quote (g_words (i), p_enc_by);
          END LOOP;
       END parse;
    Author: Oleg Lihvoinen
    Company: DbSWH
    Changes:
    10.02.2011, There was a miscalculation of the file line last position in case it is the end of file
       PROCEDURE upload (p_file_name VARCHAR2, p_collection_name VARCHAR2, p_enc_by IN VARCHAR2, p_sep_by IN VARCHAR2, p_rows NUMBER)
       IS
          v_blob_data    BLOB;
          v_clob_data    CLOB;
          v_clob_len     NUMBER;
          v_position     NUMBER;
          v_char         NCHAR (1);
          c_chunk_len    NUMBER           := 1;
          v_line         VARCHAR2 (32767) := NULL;
          v_data_array   vcarray;
          v_rows         NUMBER           := 0;
          n_seq          NUMBER           := 1;
          dest_offset    NUMBER           := 1;
          src_offset     NUMBER           := 1;
          amount         INTEGER          := DBMS_LOB.lobmaxsize;
          blob_csid      NUMBER           := DBMS_LOB.default_csid;
          lang_ctx       INTEGER          := DBMS_LOB.default_lang_ctx;
          warning        INTEGER;
          l_sep          VARCHAR2(100)    := CASE WHEN p_sep_by = '\t' THEN chr(9) ELSE p_sep_by END;
       BEGIN
          htmldb_collection.create_or_truncate_collection
                                          (p_collection_name      => p_collection_name);
          -- Read blob from wwv_flow_files
          SELECT blob_content
            INTO v_blob_data
            FROM wwv_flow_files
           WHERE NAME = p_file_name;
          v_position := 1;
          DBMS_LOB.createtemporary (lob_loc      => v_clob_data,
                                    CACHE        => TRUE,
                                    dur          => DBMS_LOB.SESSION
          DBMS_LOB.converttoclob (v_clob_data,
                                  v_blob_data,
                                  amount,
                                  dest_offset,
                                  src_offset,
                                  blob_csid,
                                  lang_ctx,
                                  warning
          v_clob_len := DBMS_LOB.getlength (v_clob_data);
          IF v_clob_len = 0 THEN
             RETURN;
          END IF;
          WHILE (v_position <= v_clob_len + 1)
          LOOP
             v_char := DBMS_LOB.SUBSTR (v_clob_data, c_chunk_len, v_position);
             v_line := v_line || v_char;
             v_position := v_position + c_chunk_len;
             -- When the whole line is retrieved and not end of file or end of file
             IF v_char = CHR (10) AND v_position < v_clob_len OR v_position = v_clob_len + 1
             THEN
                parse (p_str => v_line, p_enc_by => p_enc_by, p_sep => l_sep);
                v_data_array := g_words;
                FOR i IN 1..g_words.count LOOP
                   IF i <= 50 THEN
                      v_data_array(i) := g_words(i);
                   ELSE
                      exit;
                   END IF;
                END LOOP;
                FOR i IN g_words.count + 1..50 LOOP
                   v_data_array(i) := null;
                END LOOP;           
                v_rows := v_rows + 1;
                -- exit if uploaded specified number of rows
                IF p_rows IS NOT NULL AND v_rows > p_rows THEN
                   EXIT;
                END IF;
                -- Store data to collection
                n_seq :=
                   htmldb_collection.add_member
                                         (p_collection_name      => p_collection_name,
                                          p_c001                 => v_data_array
                                                                               (1),
                                          p_c002                 => v_data_array
                                                                               (2),
                                          p_c003                 => v_data_array
                                                                               (3),
                                          p_c004                 => v_data_array
                                                                               (4),
                                          p_c005                 => v_data_array
                                                                               (5),
                                          p_c006                 => v_data_array
                                                                               (6),
                                          p_c007                 => v_data_array
                                                                               (7),
                                          p_c008                 => v_data_array
                                                                               (8),
                                          p_c009                 => v_data_array
                                                                               (9),
                                          p_c010                 => v_data_array
                                                                               (10),
                                          p_c011                 => v_data_array
                                                                               (11),
                                          p_c012                 => v_data_array
                                                                               (12),
                                          p_c013                 => v_data_array
                                                                               (13),
                                          p_c014                 => v_data_array
                                                                               (14),
                                          p_c015                 => v_data_array
                                                                               (15),
                                          p_c016                 => v_data_array
                                                                               (16),
                                          p_c017                 => v_data_array
                                                                               (17),
                                          p_c018                 => v_data_array
                                                                               (18),
                                          p_c019                 => v_data_array
                                                                               (19),
                                          p_c020                 => v_data_array
                                                                               (20),
                                          p_c021                 => v_data_array
                                                                               (21),
                                          p_c022                 => v_data_array
                                                                               (22),
                                          p_c023                 => v_data_array
                                                                               (23),
                                          p_c024                 => v_data_array
                                                                               (24),
                                          p_c025                 => v_data_array
                                                                               (25),
                                          p_c026                 => v_data_array
                                                                               (26),
                                          p_c027                 => v_data_array
                                                                               (27),
                                          p_c028                 => v_data_array
                                                                               (28),
                                          p_c029                 => v_data_array
                                                                               (29),
                                          p_c030                 => v_data_array
                                                                               (30),
                                          p_c031                 => v_data_array
                                                                               (31),
                                          p_c032                 => v_data_array
                                                                               (32),
                                          p_c033                 => v_data_array
                                                                               (33),
                                          p_c034                 => v_data_array
                                                                               (34),
                                          p_c035                 => v_data_array
                                                                               (35),
                                          p_c036                 => v_data_array
                                                                               (36),
                                          p_c037                 => v_data_array
                                                                               (37),
                                          p_c038                 => v_data_array
                                                                               (38),
                                          p_c039                 => v_data_array
                                                                               (39),
                                          p_c040                 => v_data_array
                                                                               (40),
                                          p_c041                 => v_data_array
                                                                               (41),
                                          p_c042                 => v_data_array
                                                                               (42),
                                          p_c043                 => v_data_array
                                                                               (43),
                                          p_c044                 => v_data_array
                                                                               (44),
                                          p_c045                 => v_data_array
                                                                               (45),
                                          p_c046                 => v_data_array
                                                                               (46),
                                          p_c047                 => v_data_array
                                                                               (47),
                                          p_c048                 => v_data_array
                                                                               (48),
                                          p_c049                 => v_data_array
                                                                               (49),
                                          p_c050                 => v_data_array
                                                                               (50)                                                                          
                -- Clear the line
                v_line := NULL;
             END IF;
          END LOOP;
       END;
    END;In my apps, I save these straight into a table rather than an APEX collection because the number of columns can be longer than 50.
    I want to find out how can replace these line break inside a column to a space.
    If any one has any ideas, please let me know.
    Thanks a lot in advance.
    Ann

    Ann586341 wrote:
    I think the code split the whole thing by this line
    -- When the whole line is retrieved and not end of file or end of file
    IF v_char = CHR (10) AND v_position < v_clob_len OR v_position = v_clob_len + 1
    THEN
    Yes, exactly. That piece of code believes all CHR(10) occurences are record delimiters.
    It is not smart enough to recognize that a CHR(10) within quotation marks are part of the data.
    Optimally a solution should keep the CHR(10) rather than replacing with spaces, but that will be a bigger rewrite of the UTL_CSV code ;-)
    If you are happy with replacing with spaces, a "simple" solution could be something like:
    Declare a boolean variable in upload procedure:
    v_within_text_column   boolean := false;And use it like this:
          WHILE (v_position <= v_clob_len + 1)
          LOOP
             v_char := DBMS_LOB.SUBSTR (v_clob_data, c_chunk_len, v_position);
             IF v_char = '"' THEN
               v_within_text_column := NOT v_within_text_column;
             ELSIF v_char = CHR(10) AND v_within_text_column THEN
               v_char := ' ';
             END IF;
             v_line := v_line || v_char;
             v_position := v_position + c_chunk_len;
             -- When the whole line is retrieved and not end of file or end of file
             IF v_char = CHR (10) AND v_position < v_clob_len OR v_position = v_clob_len + 1
             THEN
               v_within_text_column := false; -- To be safe always set this on "true" linebreaks
    {code}
    +(This is untested code just written here in the text editor.)+
    It should work by toggling a flag whether you are "within" the quotes or not and then replacing CHR(10) with a space if you are within a text column.
    This way we avoid having to go through the clob more than once (it is enough that this code walks the clob one character at a time...)
    It will not handle if the clob contains situations like:
    {code}
    abc,123,"This is a text with a quote from a man who said \"To Be,
    or Not To Be\" some hundred years ago",123,xyz
    {code}
    Escaped quotes would need separate attention ;-)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Line break/carriage return in formula

    Hi,  I have an IF ELSEIF formula that works fine.  Problem is they now wants the result to show a few paragraph instead of a few words.  Can someone help me figure out how to insert line breaks/carriage returns in a formula.  Thanks.

    This is what I have:
    If (CurrentDate> {@21Days}) OR (CurrentDate >{@LastMonth})THEN "NOTICE OF TERMINATION OF CHILD CARE CONTRACT FOR NON-PAYMENT OF FEES. + chr(10)+ Lets see how to make a paragraph"
    ELSE
    If (CurrentDate<{@LastMonth}) THEN "SECOND WEEK NON-PAYMENT/PARTIAL PAYMENT NOTICE"
    ELSE
    If {tblAROpenDoc.dtmDocDate} in LastFullWeek THEN "FIRST WEEK NON-PAYMENT/PARTIAL PAYMENT NOTICE" ELSE ""
    the chr(10) shows
    Any ideas?

  • Break signal in Terminal

    Hi Everyone:
    How do i send break signal in Terminal 2.0.2?
    H/W Specs: Late Macbook 2007
    s/w: 10.5.8
    All the console applications have a command like this. Does Terminal also has one. i did some research and found it used to be on earlier ones.

    Break is a serial comm line feature that causes the TxD line to go "Low" for a specific period of time. Terminal does not do serial comm lines, so what are you sending a break signal to?
    If you do need to talk with a serial port, you can run the 'screen' command (see "man screen"). There is a 'break' command as part of the 'screen' environment.

  • Acrobat v9 JavaScript Alert Box - any way to add space or line break after each array item?

    I have a Document level Javascript used to identify blank required fields and is triggered on document actions, Print and Save. The script identifies the blank required fields, counts them, and outputs to an Alert box indicating the number of required fields blank and lists the fields by tooltip name. The script identifies the required fields by an asterisk at the end of each tool tip.
    My question is there any way to add a space or a line break after the comma for each listed item?
    Here is an image of the output where the listed items are all run together.
    Here is the code:
    function validateFields()
    //a counter for the number of empty fields
    var flg = 0
    // count all the form fields
    var n = this.numFields
    //create an array to contain the names of required fields
    //if they are determined to be empty
    var fArr = new Array();
    //loop through all fields and check for those that are required
    // all fields that have a '*' in their tool tip are required
    for(var i = 0;i<n;i++){
    var fn = this.getNthFieldName(i);
    var f = this.getField(fn);
    //tool tip is the fields\'s 'userName' property;
    var tt = f.userName
    //test for the '*';
    if(tt.indexOf('*')!=-1 && f.value == f.defaultValue){
    //increment the counter of empty fields;
    flg++;
    //add the fields userName (tool tip) to the list of empty field names;
    fArr[fArr.length] = tt;
    //now display a message if there are empty fields
    if(flg>0){
    app.alert('There are '+flg+' fields that require a value\n\n'+ fArr,3)
    else{
    this.print();

    Thank you! The alert box array items now have a line break, image below.  You know you have made my day and possibly several weeks as now I have more understanding about how to apply everything I have been reading in the Acrobat JavaScript guide and of course as soon as you pointed out using a "join", that triggered some old-days of working with Access and SQL queries.
    I will work on the required attribute to see how I might reference it.  I am laughing at myself now - good luck to me in figuring it out as I was very stick-in-the-mud regarding the line break issue.
    Thanks again and here is the result of the updated code:

  • [solved] How to have line breaks in output of journalctl log

    Hello,
    How can I have line breaks in the journalctl log output?
    At the moment I cannot read most of the log output because it does not fit into my terminal.
    See this screenshot: http://i.imgur.com/nUR6Fae.png
    Thanks!
    Last edited by orschiro (2013-09-20 08:08:04)

    You can run
    journalctl -b --no-pager | less
    Edit: If you hit 'h' you get help screen
    SUMMARY OF LESS COMMANDS
    <snip>
    ESC-) RightArrow * Left one half screen width (or N positions).
    ESC-( LeftArrow * Right one half screen width (or N positions).
    <snip>
    It may be possible to configure the way the journal uses the pager so it wraps the lines by default.
    Edit 2: Or maybe it can't be configured.
    man journalctl wrote:The output is paged through less by default, and long lines are "truncated" to screen width. The hidden part can be viewed by using the left-arrow and right-arrow keys. Paging can be disabled, see --no-pager and section Environment below.
    Last edited by karol (2013-09-20 08:02:13)

  • How to extract compiled stored procedure without line break for long statement

    After I compiled stored procedure which contains long statement, the statement would cut into 2 rows into dba_source.
    However, when I extract the codes from dba_source table, the source couldn't be compiled successfully because of
    the broken lines.
    For example, the following statement would be broken into 2 rows like this:
    (line 1) gv_Message := 'Interface Description: Interface with Training '|| 'and Development Intran
    (line 2) et (Evaluation Statistic Details)';

    That's very strange. What did you originally compile it with (sql*plus, toad, etc...)? I was able to compile a procedure with the maximum line length (2499 characters see error SP2-0027) and there is no split. Is the procedure in a VALID state with that line break? Honestly, this seems very odd, possibly even a bug here somewhere.
    Richard

  • How to detect line break while reading input ?

    Hi all,
    I am reading the user input from standard input.
    I want to detect the line break. So that I can stop reading input and proceed processing the string.
    Actually I am getting the SQL query as input and after that I am executing the same by passing it to a function.
    Pl. do reply me.
       Scanner scanner = new Scanner(System.in);             
            while(scanner.hasNext())
                 temp=scanner.next();
                  sql=sql.concat(" "+temp);
                 if(scanner.next=="\n")
                            break;
           System.out.println(sql);
           sqlTool.executeSQL(sql);
    The above is not working properly.

    But if new line comes, what will be it's value?Empty lines are discarded by the scanner.
    Kaj

Maybe you are looking for

  • Itunes 10.6.1 update

    I have tried over 10 times, but there is always an error while trying to update to version 10.6.1, whether I do it automatically or manually. I have an HP, not a mac. What can I do?

  • Bcache setup advice wanted

    Hello World I have been tinkering with mine SDD-HDD setup with Bcache. And i was wondering if i did it right ??? Mine Idea was to have a 90GB SDD for quick root access. And use the rest of the SSD with Bcache to speedup files from the HDD. Any advice

  • PLSQL tuning.

    hi, i have a piece of code like the one below. please help be in optimizing it better. open vcursor for select *..........where..... loop fetch vcursor into .......a,b,c. var a = fn(a,b,c) 'place a in an array.. end loop.. is there a way to fetch eve

  • .swf works differently on different servers

    I made a flash navigation 2 years ago that works fine (http://fwp.mt.gov/education/ecosystem/home.html - it's the bar with Discover, Explore, Conserve, Learn and Resources, with images on the right of a compass, bear, antelope, toad, and sage grouse)

  • Failure during database recovery on Homogeneous System Copy

    Dear all, i am trying to do system copy, and it fails after the execution step:  database recovery MaxDB: 7.6.5.15 SAP Netweaver 7 Ehp 1 apparantly this is something to do with LOAD_SYSTAB. I could run load_systab [-u <sysdba_user>,<sysdba_user_passw