How to avoid unions in sql quries

Hi All,
I have an sql statement in which I am using unions to get the data from two tables with different conditions. how can avoid UNIONs in  my query, which will increase performance. please suggest.
SQL Query is :
SELECT opt_url_path, locale
     FROM urlregistry
    WHERE master_assetid IN
             (SELECT c.id FROM content_c c, content_cd cc
               WHERE c.flextemplateid = cc.id AND cc.name = 'SoftwareDownload'
                     AND (c.PATH NOT LIKE '/auth%' AND c.PATH NOT LIKE '/gate%'))     
UNION
SELECT opt_url_path, locale
     FROM urlregistry
    WHERE master_assetid IN
             (SELECT c.id FROM content_c c, content_c_mungo cm
               WHERE c.id = cm.cs_ownerid AND cm.cs_attrid =
               (SELECT id FROM attribute WHERE name = 'Gated')
                 AND c.flextemplateid IN (SELECT id FROM content_cd WHERE name = 'Collateral')
                     AND cm.stringvalue = 'Yes'
                     AND (c.PATH NOT LIKE '/auth%'
                          AND c.PATH NOT LIKE '/gate%'))                              
UNION
SELECT PATH, locale
     FROM bloburlregistry
    WHERE master_assetid IN
             (SELECT c.id FROM content_c c, content_c_mungo cm
               WHERE c.id = cm.cs_ownerid AND cm.cs_attrid = (SELECT id FROM attribute WHERE name = 'Gated')
                     AND c.flextemplateid IN (SELECT id FROM content_cd WHERE name = 'Collateral')
                     AND cm.stringvalue = 'Yes'
                     AND (c.PATH NOT LIKE '/auth%'
                          AND c.PATH NOT LIKE '/gate%'))
Thank u.

To increase performance you need to reduce the I/O. So when ever i tune a SQL the first thing i look for is that. If i have a table used multiple times i try to remove it and solve the required problem by just scanning the table once. But do to that we need to have good understanding of the data and there relation between tables. But we don't know anything about yours. Said that i came up with this.
select opt_url_path
     , locale
  from urlregistry
where master_assetid
      IN
          select c.id
            from content_c c
            left
            join content_cd cc
              on c.flextemplateid = cc.id
             and (cc.name = 'SoftwareDownload' or cc.name = 'Collateral')
            left
            join content_c_mungo cm
              on c.id = cm.cs_ownerid
             and cm.cs_attrid =
                     SELECT id
                       FROM attribute
                      WHERE name = 'Gated'
             and cm.stringvalue = 'Yes'
           where c.PATH NOT LIKE '/auth%'
             and c.PATH NOT LIKE '/gate%'
             and (
                    cc.flextemplateid is not null or
                    cm.cs_owner_id    is not null
union
select PATH
     , locale
  from bloburlregistry
where master_assetid IN
          select c.id
            from content_c c
               , content_c_mungo cm
           where c.id = cm.cs_ownerid
             and cm.cs_attrid =
                     SELECT id
                       FROM attribute
                      WHERE name = 'Gated'
             and c.flextemplateid IN
                     SELECT id
                       FROM content_cd
                      WHERE name = 'Collateral'
             and cm.stringvalue = 'Yes'
             and c.PATH NOT LIKE '/auth%'
             and c.PATH NOT LIKE '/gate%'
This is a untested code. You can give this a try and see if it gives the expected output and also if the performance improves.

Similar Messages

  • How to avoid this in SQL Plus

    Hi All,
    I am creting a Stored Procedure and when i run this sentence the SQL Plus requests my the value of the variable 'lolo' and the i want to compile the Procedure, without giving that value.
    1 create procedure hh
    2 as
    3 begin
    4 DBMS_OUTPUT.PUT_LINE('&lolo');
    5* end;
    SQL> /
    Enter value for jhsdfsd: df
    old 4: DBMS_OUTPUT.PUT_LINE('hshfdhs&jhsdfsd');
    new 4: DBMS_OUTPUT.PUT_LINE('hshfdhsdf');
    Nelson Soler

    Although V's solution (V, nice to see you back by the way), will allow you to compile the proc with the ampersand character, I suspect that the stored proc will not do what you expect.
    If you are expecting it to prompt for a value of lolo when you run it, it won't.
    SQL> SET DEFINE ^
    SQL> CREATE PROCEDURE hh AS
      2  BEGIN
      3     DBMS_OUTPUT.Put_Line('&lolo');
      4  END;
      5  /
    Procedure created.
    SQL> SET SERVEROUTPUT ON
    SQL> exec hh
    &lolo
    PL/SQL procedure successfully completed.You cannot prompt for values in PL/SQL.
    TTFN
    John

  • UNION IN SQL

    HOW CAN I UNION IN SQL MULTIPLE TIMES. I MAM TRYING TO USE UNION MULTIPLE TIMES SOME TIME IT WORKS BUT SO MANY OFTEN IT DOSE'NT AND ALSO SOME TIME IT GIVE'S THE WRONG RESULT
    ANY REASON

    OFTEN IT DOSE'NT AND ALSO SOME TIME IT GIVE'S THE WRONG RESULT May be because you are doing it the wrong way. If you are learning about union, it may confuse you initially, but try understanding the way union works and figure out where you are doing a mistake.

  • How to avoid performance problems in PL/SQL?

    How to avoid performance problems in PL/SQL?
    As per my knowledge, below some points to avoid performance proble in PL/SQL.
    Is there other point to avoid performance problems?
    1. Use FORALL instead of FOR, and use BULK COLLECT to avoid looping many times.
    2. EXECUTE IMMEDIATE is faster than DBMS_SQL
    3. Use NOCOPY for OUT and IN OUT if the original value need not be retained. Overhead of keeping a copy of OUT is avoided.

    Susil Kumar Nagarajan wrote:
    1. Group no of functions or procedures into a PACKAGEPutting related functions and procedures into packages is useful from a code organization standpoint. It has nothing whatsoever to do with performance.
    2. Good to use collections in place of cursors that do DML operations on large set of recordsBut using SQL is more efficient than using PL/SQL with bulk collects.
    4. Optimize SQL statements if they need to
    -> Avoid using IN, NOT IN conditions or those cause full table scans in queriesThat is not true.
    -> See to queries they use Indexes properly , sometimes Leading index column is missed out that cause performance overheadAssuming "properly" implies that it is entirely possible that a table scan is more efficient than using an index.
    5. use Oracle HINTS if query can't be further tuned and hints can considerably help youHints should be used only as a last resort. It is almost certainly the case that if you can use a hint that forces a particular plan to improve performance that there is some problem in the underlying statistics that should be fixed in order to resolve issues with many queries rather than just the one you're looking at.
    Justin

  • HOw to avoid DeadLocks when you schedule a Sql Server Agent Job and calling SSIS packages

    Hi All,
    I have scheduled 2 packages in in Sql Server Agent jobs .
    First job which is having Package 1 executing at 11 AM and where I am inserting the data in the table.
    Second job which is having Package 2 executing at 12 AM and where I am updating the data in the table based on the first job inserted records.
    When I am executing my first job it taking more time and executing till 12 AM and from 12 AM my job 2 also starting ,so getting deadlocks conflicts because inserting happening from job1 and updating happening from Job 2.
    How to avoid deadlocks and fix the issue.
    Please Suggest .
    Thanks & Regards,
    Anand

    Hi Anand,
    Here is another solution, you can set the Job 2 not to run based on a schedule, and create another SQL Server Agent Job which starts at 12 AM and run with a specified time interval to execute a SQL statement in which you do the following steps:
    1. Get the status information of Job 1 using the statement:
    DECLARE @i int;
    EXEC @i = msdb.dbo.sp_help_job @job_name = ‘Job Name'
    2. If the value of @i is 1 which means the status of job 1 is success and current time is, then start the job 2. So, the statement is as follows:
    IF @I = 1
    EXEC msdb.dbo.sp_start_job @job_name= ‘Job Name’
    Regards,
    Mike Yin
    TechNet Community Support

  • How to avoid DISTINCT in OBIEE SQL

    Hi...
    For question i posted previously...
    Problem with LONG datatype in Answers
    I run the query in TOAD, and i was identified the error because of what this error is coming... because of DISTINCT...
    I have taken care of avoiding that column in ORDER BY by putting the order by on another column..
    Now my question is how to avoid the DISTINCT clause in SQL generated by OBIEE...
    If the first column in criteria is measure then it avoids the DISTINCT... but if i use measure... group by will come.. and group by should not be used here...
    If this is done... my problem will be resolved...
    Ofcourse... i would be getting duplicate rows...
    Still i want the answer how to avoid DISTINCT?
    Expecting answer from you...
    Thanks & Regards
    Kishore Guggilla

    Hi...
    Thanks for reply...
    Now another question.. if i want to do this for one report... how?/
    If i do that change in Catalog properties.. that will be effected for all reports i think...
    Instead of that if i want to do that for only one report.. which is effecting... then how to proceed??
    I tried by writing case when 1=0 ... for first column in criteria.. but no luck...
    Thanks & Regards
    Kishore Guggilla

  • How to avoid repeatation of code

    hi
    My code is as mentioned below.
    if l_location ='USA'
    insert into location
    select f1,f2,f3,f4
    from usa_tab
    else if l_location = 'FRANCE'
    insert into location
    select f1,f2,f3,f4
    from france_tab f , x1_tab x
    where f.id = x.id
    else if l_location = 'UK'
    insert into location
    select f1,f2,f3,f4
    from uk_tab u,y1_tab y
    where u.id = y.id
    end if;
    how to avoid the repeatation of code here?

    954992 wrote:
    it is an existing application. The tables can not be changed.
    actually here the insert and select statements are fixed , only the from and where conditions are getting changed.
    howf to avoid repeatation of the fixed code?Oracle supports features called "+partition views+" and "+instead of triggers+". This can be used to glue tables (same structure) together and select and insert against these tables via a view.
    Basic example:
    // tables that constitutes the partition view - a check constraint on
    // country is used to specify which cities are in which table, similar
    // to a partition key
    SQL> create table location_france(
      2          country varchar2(10) default 'FRANCE' not null,
      3          city    varchar2(20) not null,
      4          --
      5          constraint chk_france check (country in 'FRANCE'),
      6          constraint pk_location_france primary key
      7          ( country, city )
      8  ) organization index;
    Table created.
    SQL> create table location_uk(
      2          country varchar2(10) default 'UK' not null,
      3          city    varchar2(20) not null,
      4          --
      5          constraint chk_uk check (country in 'UK'),
      6          constraint pk_location_uk primary key
      7          ( country, city )
      8  ) organization index;
    Table created.
    SQL> create table location_spain(
      2          country varchar2(10) default 'SPAIN' not null,
      3          city    varchar2(20) not null,
      4          --
      5          constraint chk_spain check (country in 'SPAIN'),
      6          constraint pk_location_spain primary key
      7          ( country, city )
      8  ) organization index;
    Table created.A partition view is a view that uses union all to glue these tables together:
    SQL> create or replace view locations as
      2          select * from location_france
      3          union all
      4          select * from location_uk
      5          union all
      6          select * from location_spain
      7  /
    View created.To support inserts against the partition view, an instead-of trigger is used:
    SQL> create or replace trigger insert_location
      2          instead of insert on locations
      3  begin
      4          case :new.country
      5                  when 'FRANCE' then
      6                          insert into location_france values( :new.country, :new.city );
      7                  when 'UK' then
      8                          insert into location_uk values( :new.country, :new.city );
      9                  when 'SPAIN' then
    10                          insert into location_spain values( :new.country, :new.city );
    11          else
    12                  raise_application_error(
    13                          -20000,
    14                          'Country name ['||:new.country||'] is not supported.'
    15                  );
    16          end case;
    17  end;
    18  /
    Trigger created.Rows can now be inserted into the view and the trigger will ensure that the rows wind up in the correct table.
    SQL> insert into locations values( 'FRANCE', 'PARIS' );
    1 row created.
    SQL> insert into locations values( 'UK', 'LONDON' );
    1 row created.
    SQL> insert into locations values( 'SPAIN', 'BARCELONA' );
    1 row created.As with a partition table, a select on a partition view that uses the "partition column" (in this case, the COUNTRY column), the CBO can prune the non-relevant tables from the view and only select against the relevant table. In the following example, the UK is used as country filter and the CBO shows that only table LOCATION_UK is used.
    SQL> set autotrace on explain
    SQL> select * from locations where country = 'UK';
    COUNTRY    CITY
    UK         LONDON
    Execution Plan
    Plan hash value: 1608298493
    | Id  | Operation           | Name               | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT    |                    |     1 |    19 |     1   (0)| 00:00:01 |
    |   1 |  VIEW               | LOCATIONS          |     1 |    19 |     1   (0)| 00:00:01 |
    |   2 |   UNION-ALL         |                    |       |       |            |          |
    |*  3 |    FILTER           |                    |       |       |            |          |
    |*  4 |     INDEX RANGE SCAN| PK_LOCATION_FRANCE |     1 |    19 |     2   (0)| 00:00:01 |
    |*  5 |    INDEX RANGE SCAN | PK_LOCATION_UK     |     1 |    19 |     2   (0)| 00:00:01 |
    |*  6 |    FILTER           |                    |       |       |            |          |
    |*  7 |     INDEX RANGE SCAN| PK_LOCATION_SPAIN  |     1 |    19 |     2   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       3 - filter(NULL IS NOT NULL)
       4 - access("COUNTRY"='UK')
       5 - access("COUNTRY"='UK')
       6 - filter(NULL IS NOT NULL)
       7 - access("COUNTRY"='UK')
    Note
       - dynamic sampling used for this statement (level=2)
    SQL>Oracle provides a number of methods to address flawed data models and problematic client code. However, despite this flexibility on Oracle's part, you should still consider fixing the flawed design and code - as that flaws invariable mean reducing flexibility, performance and scalability.

  • How to avoid the duplicate values, I do not want the duplicate............

    i have one database table called "sms1" that table is updated every day or on daily basis it has the following fields in it:
    SQL> desc sms1;
    Name Null? Type
    MOBILE NUMBER
    RCSTCNATCNATCNATCNAWTHER VARCHAR2(39 CHAR)
    SNO NUMBER
    INDATE DATE
    From this table the is one column "RCSTCNATCNATCNATCNAWTHER VARCHAR2(39 CHAR)" . I am splitting it into different columns like :
    SQL> desc smssplit;
    Name Null? Type
    R VARCHAR2(2 CHAR)
    C VARCHAR2(2 CHAR)
    S VARCHAR2(1 CHAR)
    TC VARCHAR2(3 CHAR)
    NA VARCHAR2(3 CHAR)
    TC2 VARCHAR2(3 CHAR)
    NA2 VARCHAR2(3 CHAR)
    TC3 VARCHAR2(3 CHAR)
    NA3 VARCHAR2(3 CHAR)
    TC4 VARCHAR2(3 CHAR)
    NA4 VARCHAR2(3 CHAR)
    WTHER VARCHAR2(10 CHAR)
    SNO NUMBER
    INSERTDATA VARCHAR2(25 CHAR)
    Now I am written a procedure to insert the data from "Sms1" table to smssplit table...
    CREATE OR REPLACE PROCEDURE SPLITSMS
    AS
    BEGIN
    INSERT INTO scott.SMSSPLIT ( R,C,S,TC,NA,TC2,NA2,TC3,NA3,TC4,NA4,WTHER,SNO)
    SELECT SUBSTR(RCSTCNATCNATCNATCNAWTHER,1,2) R,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,3,2) C,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,5,1) S,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,6,3) TC,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,9,3) NA,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,12,3) TC2,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,15,3) NA2,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,18,3) TC3,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,21,3) NA3,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,24,3) TC4,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,27,3) NA4,
    SUBSTR(RCSTCNATCNATCNATCNAWTHER,30,10) WTHER, SNO
    FROM scott.SMS1 where SNO=(select MAX (sno) from SMS1);
    END;
    Now in order to update the second table with data from first table on regular basis I have written a job scheduler and I am using oracle 9.0. version...
    DECLARE
    X NUMBER;
    JobNumber NUMBER;
    BEGIN
    SYS.DBMS_JOB.SUBMIT
    job => X
    ,what => 'scott.SPLITSMS;'
    ,next_date => SYSDATE+1/1440
    ,interval => 'SYSDATE+1/1440 '
    ,no_parse => FALSE
    :JobNumber := to_char(X);
    END;
    Now this job scheduler is working properly and updating the data for every one minute but it is taking or updating the duplicate values also ..like example:
    R C S TC NA TC2 NA2 TC3 NA3 TC4 NA4 WTHER SNO
    INSERTDATA
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:49:16
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:49:16
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:50:17
    R C S TC NA TC2 NA2 TC3 NA3 TC4 NA4 WTHER SNO
    INSERTDATA
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:50:17
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:51:19
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:51:19
    R C S TC NA TC2 NA2 TC3 NA3 TC4 NA4 WTHER SNO
    INSERTDATA
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:52:20
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:52:20
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:53:22
    R C S TC NA TC2 NA2 TC3 NA3 TC4 NA4 WTHER SNO
    INSERTDATA
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:53:22
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:54:45
    33 35 2 123 456 789 543 241 643 243 135 RRRRRR 55
    06-SEP-2012 03:54:45
    Now I do not want the duplicate values to be updated ...and want them to ignore them.....
    please I need a help on this query........How to avoid the duplicate values............

    Look at the posts closely:might not be needed if formatted ;)
    create or replace procedure splitsms as
    begin
      insert into scott.smssplit (r,c,s,tc,na,tc2,na2,tc3,na3,tc4,na4,wther,sno)
      select substr(rcstcnatcnatcnatcnawther,1,2) r,
             substr(rcstcnatcnatcnatcnawther,3,2) c,
             substr(rcstcnatcnatcnatcnawther,5,1) s,
             substr(rcstcnatcnatcnatcnawther,6,3) tc,
             substr(rcstcnatcnatcnatcnawther,9,3) na,
             substr(rcstcnatcnatcnatcnawther,12,3) tc2,
             substr(rcstcnatcnatcnatcnawther,15,3) na2,
             substr(rcstcnatcnatcnatcnawther,18,3) tc3,
             substr(rcstcnatcnatcnatcnawther,21,3) na3,
             substr(rcstcnatcnatcnatcnawther,24,3) tc4,
             substr(rcstcnatcnatcnatcnawther,27,3) na4,
             substr(rcstcnatcnatcnatcnawther,30,10) wther,
             sno
        from scott.sms1 a
       where sno = (select max(sno)
                      from sms1
                     where sno != a.sno
                   ); ---------------> added where clause with table alias.
    end;Regards
    Etbin

  • How to avoid db file parallel read for nestloop?

    After upgraded to 11gr2, one job took more than twice as long as before on 10g and 11gr1 with compatibility being 10.2.0.
    Same hardware. (See AWR summary below). My analysis points to that Nestloop is doing index range scan for the inner table's index segment,
    and then use db file parallel read to read data from the table segment, and for reasons that I don't know, the parallel read is very slow.
    AVG wait is more than 300ms. How can I fluence optimier to choose db file sequential read to fetch data block from inner table by tweaking
    parameters? Thanks. YD
    Begin Snap: 13126 04-Mar-10 04:00:44 60 3.9
    End Snap: 13127 04-Mar-10 05:00:01 60 2.8
    Elapsed: 59.27 (mins)
    DB Time: 916.63 (mins)
    Report Summary
    Cache Sizes
    Begin End
    Buffer Cache: 4,112M 4,112M Std Block Size: 8K
    Shared Pool Size: 336M 336M Log Buffer: 37,808K
    Load Profile
    Per Second Per Transaction Per Exec Per Call
    DB Time(s): 15.5 13.1 0.01 0.01
    DB CPU(s): 3.8 3.2 0.00 0.00
    Redo size: 153,976.4 130,664.3
    Logical reads: 17,019.5 14,442.7
    Block changes: 848.6 720.1
    Physical reads: 4,149.0 3,520.9
    Physical writes: 16.0 13.6
    User calls: 1,544.7 1,310.9
    Parses: 386.2 327.7
    Hard parses: 0.1 0.1
    W/A MB processed: 1.8 1.5
    Logons: 0.0 0.0
    Executes: 1,110.9 942.7
    Rollbacks: 0.2 0.2
    Transactions: 1.2
    Instance Efficiency Percentages (Target 100%)
    Buffer Nowait %: 99.99 Redo NoWait %: 100.00
    Buffer Hit %: 75.62 In-memory Sort %: 100.00
    Library Hit %: 99.99 Soft Parse %: 99.96
    Execute to Parse %: 65.24 Latch Hit %: 99.95
    Parse CPU to Parse Elapsd %: 91.15 % Non-Parse CPU: 99.10
    Shared Pool Statistics
    Begin End
    Memory Usage %: 75.23 74.94
    % SQL with executions>1: 67.02 67.85
    % Memory for SQL w/exec>1: 71.13 72.64
    Top 5 Timed Foreground Events
    Event Waits Time(s) Avg wait (ms) % DB time Wait Class
    db file parallel read 106,008 34,368 324 62.49 User I/O
    DB CPU 13,558 24.65
    db file sequential read 1,474,891 9,468 6 17.21 User I/O
    log file sync 3,751 22 6 0.04 Commit
    SQL*Net message to client 4,170,572 18 0 0.03 Network

    Its not possible to say anything just by looking at the events.You must understand that statspacks and AWR actualy aggergate the data and than show the results.There may be a very well possibility that some other areas also need to be looked at rather than just focussin on one event.
    You have not mentioned any kind of other info about the wait event like their timings and all that.PLease provide that too.
    And if I understood your question corretly,you said,
    How to avoid these wait events?
    What may be the cause?
    I am afraid that its not possible to discuss each of these wait event here in complete details and also not about what to do when you see them.Please read teh Performance Tuning book which narrates these wait events and corresponding actions.
    Please read and follow this link,
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/instance_tune.htm#i18202
    Aman....

  • Please reply:how to avoid extra trailing spaces while using cursor sharing

    i am using cursor sharing with FORCE or SIMILAR.
    what is the solution to avoid extra trailing spaces without any java code change.
    do we have any option in oracle to avoid extra trailing spaces during the query processing ?
    I am using Oracle 10g
    CURSOR SHARING is a feature in which multiple sql statements
    which are same will have a shared cursor (in the library cache) for an oracle session,
    i.e, the first three steps of the sql processing (hard parse, soft parse, optimization)
    will be done only the first time that kind of statement is executed.
    There are two ways in which similar SQL statements with different condition values can be made to "SHARE" cursor during execution:
    1. Writing SQLs with Bind Variables: SQLs having no hard coded literals in them
    For e.g., the query below
    SELECT node.emp_name AS configid
    FROM emp node
    WHERE emp_no = :1
    AND dept_no =
    DECODE (SUBSTR (:2, 1, 3),
    :3, :4,
    (SELECT MAX (dept_no)
    FROM emp
    WHERE emp_no = :5 AND dept_no <= :6)
    AND node.dept_type = :7
    ORDER BY node.emp_name
    Here all the variables are dynamically bound during the execution. The ":X" represents BIND Variable and the actual values are bound to the SQL only at the 4th step of the execution of the SQL.
    In applications: The queries written with "?" as bind variables will be converted into ":X" and are sqls with Bind Variables.
    2. The CURSOR_SHARING parameter: Only Useful for SQL statements containing literals:
    For eg., the query below:
    SELECT node.emp_name AS configid
    FROM emp node
    WHERE emp_no = 'H200'
    AND dept_no =
    DECODE (SUBSTR (:1, 1, 3),
    'PLN', :2,
    (SELECT MAX (dept_no)
    FROM emp
    WHERE emp_no = :3 AND dept_no <= :4)
    AND node.dept_type = :5
    ORDER BY node.emp_name
    In the query above, there are two hard coded literals H200 , PLN. In this case when the same SQL executed with different values like (H2003 , PLN), oracle will create a new cursor for this statement and all the first three steps ( hard & soft parse and optimization plan) needs to be done again.
    This can be avoided by changing the CURSOR_SHARING parameter which can be set to any of three values:
    1. EXACT: Causes the mechanism not be used, i.e. no cursor sharing for statements with different literals. This is the default value.
    2. FORCE: Causes unconditional sharing of SQL statements that only differ in literals.
    3. SIMILAR: Causes cursor sharing to take place when this is known not to have any impact on optimization.
    So, FORCE and SIMILAR values of the parameter will be helping in cursor sharing and improve the performance of the SQLs having literals.
    But here the problem arises if we use the FORCE and SIMILAR other than EXACT.
    alter session set cursor_sharing ='EXACT'
    select 1 from dual;
    '1'
    1
    alter session set curson_sharing='FORCE'
    select 2 from dual;
    '2'
    2
    alter session set curson_sharing='SIMILAR'
    select 3 from dual;
    '3'
    3
    So, this will give extra trailing spaces in when we retrieve from java method and any
    further java processing based on the hardcoded literal values will fail. this needs lot of
    effort in remodifying the existing millions of lines of code.
    My question is i have to use cursor sharing with FORCE or SIMILAR and can't we do the trimming
    from the oracle query processing level ?
    please help me on this ?
    Message was edited by:
    Leeladhar
    Message was edited by:
    Leeladhar

    Please reply to this thread
    How to avoid extr trailing spaces using Cursor sharing opton FORCE, SIMILAR

  • How to use union statement with declare & set function?

    Hi Experts,
            i  have small query about how to use union statement with declare & set function?
    Example as below :
    DECLARE @name AS date
    Declare @name2  AS date
    /* SELECT FROM [2013].[dbo].[OINV] T0 */
    /* WHERE */
    SET @name = /* T0.DocDate */ '[%1]'
    SET @name2 = /* T0.DocDate */ '[%2]'
    select  '2013',t5.U_salmannm,t1.CardName,t2.sumapplied as CollectionAmount,t2.DcntSum ,t3.DocTotal as InvoiceTotal,
    datediff(dd,t3.DocDate,t1.Docdate) as Days
    from 2013.dbo.orct t1
    inner join 2013.dbo.RCT2 t2 on t1.DocNum = t2.DocNum
    left join 2013.dbo.oinv t3 on
    t3.docentry = t2.baseAbs
    inner join 2013.dbo.ocrd t4 on t1.Cardcode = t4.CardCode
    inner join [2013].[dbo].[@CQ_RTSM] t5 on t4.U_BeatCode = t5.U_RoutCode
    where t2.DcntSum <> 0.000000 and t3.DocDate between [%1] and [%2]
    Union
    /* SELECT FROM [2014].[dbo].[OINV] T0 */
    /* WHERE */
    SET @name = /* T0.DocDate */ '[%1]'
    SET @name2 = /* T0.DocDate */ '[%2]'
    select  '2014',t5.U_salmannm,t1.CardName,t2.sumapplied as CollectionAmount,t2.DcntSum ,t3.DocTotal as InvoiceTotal,
    datediff(dd,t3.DocDate,t1.Docdate) as Days
    from 2014.dbo.orct t1
    inner join 2014.dbo.RCT2 t2 on t1.DocNum = t2.DocNum
    left join 2014.dbo.oinv t3 on
    t3.docentry = t2.baseAbs
    inner join 2014.dbo.ocrd t4 on t1.Cardcode = t4.CardCode
    inner join [2014].[dbo].[@CQ_RTSM] t5 on t4.U_BeatCode = t5.U_RoutCode
    where t2.DcntSum <> 0.000000 and t3.DocDate between [%1] and [%2]

    You have to create stored procedure in SQL only .
    Like u must have create for Crystal .
    You can execute procedure in query manager but you have to enter parameter manually..
    example
    Exec @Test '20140101' '20140501'
    Every time user has to enter it manually in yyyymmdd format in case of date parameters.
    Example
    Create Proc [@Test]
    as begin
    DECLARE @name AS date
    Declare @name2  AS date
    /* SELECT FROM [2013].[dbo].[OINV] T0 */
    /* WHERE */
    select  '2013',t5.U_salmannm,t1.CardName,t2.sumapplied as CollectionAmount,t2.DcntSum ,t3.DocTotal as InvoiceTotal,
    datediff(dd,t3.DocDate,t1.Docdate) as Days
    from 2013.dbo.orct t1
    inner join 2013.dbo.RCT2 t2 on t1.DocNum = t2.DocNum
    left join 2013.dbo.oinv t3 on
    t3.docentry = t2.baseAbs
    inner join 2013.dbo.ocrd t4 on t1.Cardcode = t4.CardCode
    inner join [2013].[dbo].[@CQ_RTSM] t5 on t4.U_BeatCode = t5.U_RoutCode
    where t2.DcntSum <> 0.000000 and t3.DocDate between @Name and @Name2
    Union
    /* SELECT FROM [2014].[dbo].[OINV] T0 */
    /* WHERE */
    select  '2014',t5.U_salmannm,t1.CardName,t2.sumapplied as CollectionAmount,t2.DcntSum ,t3.DocTotal as InvoiceTotal,
    datediff(dd,t3.DocDate,t1.Docdate) as Days
    from 2014.dbo.orct t1
    inner join 2014.dbo.RCT2 t2 on t1.DocNum = t2.DocNum
    left join 2014.dbo.oinv t3 on
    t3.docentry = t2.baseAbs
    inner join 2014.dbo.ocrd t4 on t1.Cardcode = t4.CardCode
    inner join [2014].[dbo].[@CQ_RTSM] t5 on t4.U_BeatCode = t5.U_RoutCode
    where t2.DcntSum <> 0.000000 and t3.DocDate between
    between @Name and @Name2
    end

  • How to avoid spaces in csv file at the time of spooling

    Hi all,
    I am spooling 30 query results into one CSV file ,I am getting two empty rows for each query.
    Can any one suggest me how to avoid these spaces.
    Thanks & Regards,
    P Prakash
    this is the script i am using to generate csv file .
    SET linesize 12000
    SET pagesize 10000
    SET pause off
    SET termout off
    SET feed off
    SET head off
    SPOOL c:\tes111.csv replace
    SELECT 'ISA01,ISA02,ISA03,ISA04,ISA05,ISA06,ISA07,ISA08,ISA09,ISA11,ISA12,ISA13,ISA14,ISA15,ISA16,GS01,GS02,GS03,GS04,GS05,GS06,GS07,GS08,ST01,ST02,ST03,BHT01,BHT02,BHT03,BHT04,BHT06,trnsctn_segment_count,included_trnsctn_sets_count,included_fnctnl_groups_count,input_acknwldgmnt_sid'
    FROM DUAL;
    SELECT ptr.athrztn_infrmtn_qlfr
    || ','
    || ptr.athrztn_infrmtn
    || ','
    || ptr.scrty_infrmtn_qlfr
    || ','
    || ptr.scrty_infrmtn
    || ','
    || ptr.intrchng_sndr_idntfr_qlfr
    || ','
    || ptr.intrchng_sndr_idntfr
    || ','
    || ptr.intrchng_rcvr_idntfr_qlfr
    || ','
    || ptr.intrchng_rcvr_idntfr
    || ','
    || ptr.intrchng_date
    || ','
    || ptr.intrchng_cntrl_stndrds_idntfr
    || ','
    || ptr.intrchng_cntrl_vrsn_nmbr
    || ','
    || ptr.intrchng_cntrl_nmbr
    || ','
    || ptr.acknwldgmnt_rqstd_indctr
    || ','
    || ptr.usg_indctr
    || ','
    || ptr.cmpnt_elmnt_sprtr
    || ','
    || ptr.fnctnl_idntfr_code
    || ','
    || ptr.aplctn_sndr_code
    || ','
    || ptr.applctn_rcvr_code
    || ','
    || ptr.fnctnl_grp_crtn_date
    || ','
    || ptr.fnctnl_grp_crtn_date
    || ','
    || ptr.grp_cntrl_nmbr
    || ','
    || ptr.rspnsbl_agncy_code
    || ','
    || ptr.vrsn_rls_indstry_idntfr_code
    || ','
    || ptr.trnsctn_set_idntfr_code
    || ','
    || ptr.trnsctn_set_cntrl_nmbr
    || ','
    || ptr.implementation_guide_vrsn_name
    || ','
    || ptr.hierarchical_structure_code
    || ','
    || ptr.trnsctn_set_purpose_lkpcd
    || ','
    || ptr.sbmtr_trnsctn_idntfr
    || ','
    || ptr.trnsctn_set_creation_date
    || ','
    || ptr.trnsctn_type_code
    || ','
    || ptr.trnsctn_segment_count
    || ','
    || ptr.included_trnsctn_sets_count
    || ','
    || ptr.included_fnctnl_groups_count
    || ','
    || ia.input_acknwldgmnt_sid
    || ','
    FROM pa_transaction_request ptr, input_acknwldgmnt ia, input_batch_file ibf
    WHERE ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    SELECT 'pa_rqst_sid,NM01,NM02,NM108,NM109'
    FROM DUAL;
    SELECT pr.pa_rqst_sid
    || ','
    || pr.entity_idntfr_lkpcd
    || ','
    || pr.entity_type_qlfr
    || ','
    || pr.payer_idntfctn_code_qlfr
    || ','
    || pr.payer_idntfctn_code
    || ','
    FROM pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    SELECT 'meta_data_cid,data_value,iteration_number,Created_by,modified_by'
    FROM DUAL;
    SELECT prs.meta_data_cid
    || ','
    || prs.data_value
    || ','
    || prs.iteration_number
    || ','
    || prs.created_by
    || ','
    || prs.modified_by
    || ','
    FROM pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf,
    pa_request_situational prs
    WHERE pr.pa_rqst_sid = prs.pa_rqst_sid
    AND prs.stnl_target_table_cid = 100
    AND prs.target_table_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    SELECT 'NM101 ,NM103,NM104,NM105,NM108,NM109,PER02,PER04,PER05,PER06,PER07 ,PER08'
    FROM DUAL;
    SELECT pr.pa_rqst_sid
    || ','
    || prpl.pa_rqst_x_prvdr_lctn_sid
    || ','
    || prpl.rqstr_entity_idntfr_lkpcd
    || ','
    || prpl.last_name
    || ','
    || prpl.first_name
    || ','
    || prpl.middle_name
    || ','
    || prpl.idntfr_type_cid
    || ','
    || prpl.prvdr_lctn_iid
    || ','
    || prpl.rqstr_contact_name
    || ','
    || prpl.cmnctn_nmbr_1
    || ','
    || prpl.cmnctn_nmbr_2
    || ','
    || prpl.cmnctn_nmbr_type_lkpcd_1
    || ','
    || prpl.cmnctn_nmbr_type_lkpcd_2
    || ','
    || prpl.cmnctn_nmbr_type_lkpcd_3
    FROM pa_request_x_provider_location prpl,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prpl.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat'
    AND prpl.pa_prvdr_type_lkpcd = 'RR';
    SELECT 'meta_data_cid,data_value,iteration_number,Created_by,modified_by'
    FROM DUAL;
    SELECT prs.meta_data_cid
    || ','
    || prs.data_value
    || ','
    || prs.iteration_number
    || ','
    || prs.created_by
    || ','
    || prs.modified_by
    || ','
    FROM pa_request_x_provider_location prpl,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf,
    pa_request_situational prs
    WHERE prpl.pa_rqst_sid = prs.pa_rqst_sid
    AND prs.stnl_target_table_cid = 102
    AND prs.target_table_sid = prpl.pa_rqst_x_prvdr_lctn_sid
    AND prpl.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat'
    AND prpl.pa_prvdr_type_lkpcd = 'RR';
    -- 4. Subscriber
    NM103 Name Last or Organization Name
    NM104 Name First
    NM108 Identification Code Qualifier
    NM109 Identification Code
    DMG02 Date Time Period birth date
    DMG03 Gender Code
    SELECT ' NM103,NM104,NM108,NM109,DMG02,DMG03'
    FROM DUAL;
    SELECT prxm.last_name
    || ','
    || prxm.first_name
    || ','
    || prxm.idntfr_type_cid
    || ','
    || prxm.mbr_idntfr
    || ','
    || prxm.birth_date
    || ','
    || prxm.gender_lkpcd
    || ','
    FROM pa_request_x_member prxm,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prxm.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    -- 5. Subscriber Situational Info
    NM102 Entity Type Qualifier
    NM105 Name Middle
    NM107 Name Suffix
    REF01 Reference Identification Qualifier
    REF02 Reference Identification
    N301 Address Information
    N302 Address Information
    N401 City Name
    N402 State or Province Code
    N403 Postal Code
    N407 Country Subdivision Code
    SELECT 'meta_data_cid,data_value,iteration_number,Created_by,modified_by'
    FROM DUAL;
    SELECT prs.meta_data_cid
    || ','
    || prs.data_value
    || ','
    || prs.iteration_number
    || ','
    || prs.created_by
    || ','
    || prs.modified_by
    || ','
    FROM pa_request_x_member prxm,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf,
    pa_request_situational prs
    WHERE prxm.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND prs.stnl_target_table_cid = 101
    AND prs.target_table_sid = prxm.pa_rqst_x_mbr_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    -- 6. Patient Event Level
    TRN02 Reference Identification
    TRN03 Originating Company Identifier
    TRN04 Reference Identification
    UM01 Request Category Code
    UM02 Certification Type Code
    UM03 Service Type Code
    UM04-1 Facility Code Value
    UM04-2 Facility Code Qualifier
    UM06 Level of Service Code
    UM07 Current Health Condition Code
    UM08 Prognosis Code
    UM09 Release of Information Code
    UM10 Delay Reason Code
    SELECT 'TRN02,TRN03,TRN04,UMO1,UMO2,UM04_1,UM04_2,UM06,UM07,UM08,UM09,UM10,'
    FROM DUAL;
    SELECT prd.patient_event_tracking_number
    || ','
    || prd.orginating_company_identifier
    || ','
    || prd.trace_assigning_entity_idntfr
    || ','
    || prs.rqst_ctgry_lkpcd
    || ','
    || prs.rqst_crtfctn_type_lkpcd
    || ','
    || prs.x12_pa_srvc_type_code
    || ','
    || prs.facility_type_code
    || ','
    || prs.unfrm_blng_facility_type_code
    || ','
    || prs.srvc_rqd_lkpcd
    || ','
    || prs.current_health_cndtn_lkpcd
    || ','
    || prs.prognosis_lkpcd
    || ','
    || prs.rls_of_info_lkpcd
    || ','
    || prs.delay_reason_lkpcd
    || ','
    FROM pa_request_service prs,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf,
    pa_request_detail prd
    WHERE prs.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND pr.pa_rqst_sid = prd.pa_rqst_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    --Patient Event Level situational information
    SELECT 'meta_data_cid,data_value,iteration_number,Created_by,modified_by'
    FROM DUAL;
    SELECT prs.meta_data_cid
    || ','
    || prs.data_value
    || ','
    || prs.iteration_number
    || ','
    || prs.created_by
    || ','
    || prs.modified_by
    || ','
    FROM pa_request_service prsv,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf,
    pa_request_situational prs
    WHERE prsv.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND prs.stnl_target_table_cid = 103
    AND prs.target_table_sid = prsv.pa_rqst_srvc_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    ---Diagnosis
    HI01 Health Care Code Information
    HI01-1 Code List Qualifier Code
    HI01-2 Industry Code
    HI01-3 Date Time Period Format Qualifier
    HI01-4 Date Time Period
    SELECT 'HI01_1,HI01_2,HI01_3'
    FROM DUAL;
    SELECT prd.pa_diagnosis_type_lkpcd
    || ','
    || prd.diagnosis_iid
    || ','
    || prd.from_date
    || ','
    FROM pa_request_x_diagnosis prd,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prd.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    -- Request detail
    TRN02 Reference Identification
    TRN03 Originating Company Identifier
    TRN04 Reference Identification
    SELECT 'TRN02,TRN03,TRN04'
    FROM DUAL;
    SELECT prd.patient_event_tracking_number
    || ','
    || prd.orginating_company_identifier
    || ','
    || prd.trace_assigning_entity_idntfr
    || ','
    FROM pa_request_detail prd,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prd.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    -- ambulance Transaportation
    CR101 Unit or Basis for Measurement Code
    CR102 Weight
    CR103 Ambulance Transport Code
    CR104 Ambulance Transport Reason Code
    CR105 Unit or Basis for Measurement Code
    CR106 Quantity
    CR109 Description
    CR110 Description
    SELECT 'CR101,CR102,CR103,CR104,CR105,CR106,CR109,CR110'
    FROM DUAL;
    SELECT pat.weight_uom_code
    || ','
    || pat.patient_weight
    || ','
    || pat.amblnc_transport_type_lkpcd
    || ','
    || pat.amblnc_transport_rsn_lkpcd
    || ','
    || pat.distance_uom_code
    || ','
    || pat.trnsprtn_distance
    || ','
    || pat.round_trip_purpose_desc
    || ','
    || pat.stretcher_purpose_desc
    || ','
    FROM pa_request_ambulance_transport pat,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE pat.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    -- 2000F SV1
    SV101-1 Product/Service ID Qualifier Change values
    SV101-2 Product/Service ID Need to change label to Procedure Code.
    SV101-3 Procedure Modifier No change required to PA screen
    SV101-4 Procedure Modifier No change required to PA screen
    SV101-5 Procedure Modifier No change required to PA screen
    SV101-6 Procedure Modifier No change required to PA screen
    SV101-7 Description No change required to PA screen. Will map to the Remarks field on the Screen
    SV102 Monetary Amount
    SV103 Unit or Basis for Measurement Code
    SV104 Quantity
    SV107 Composite Diagnosis Code Pointer
    SV107-1 Diagnosis Code Pointer
    SV107-2 Diagnosis Code Pointer
    SV107-3 Diagnosis Code Pointer
    SV107-4 Diagnosis Code Pointer
    SV111 Yes/No Condition or Response Code
    SV120 Level of Care Code
    SELECT 'TRN_Reference_Identif,TRN_Originating_CMP_Identif,TRN_Reference_IdentiReference Identiff,Reference_Identif,Reference_Identification,Reference_Identif,Product/Service_ID_Qualifier,Product/Service_ID,Procedure_Modifier,Procedure_Modifier,Procedure_Modifier,Procedure_Modifier,Description'
    FROM DUAL;
    SELECT prp.srvc_trace_nmbr_1
    || ','
    || prp.trace_asgn_enty_adtnl_idntfr_1
    || ','
    || prp.trace_asgn_enty_adtnl_idntfr_1
    || ','
    || prp.trace_asgn_enty_adtnl_idntfr_2
    || ','
    || prp.prvs_rvw_athrztn_nmbr
    || ','
    || prp.prvs_administrative_rfrnc_nmbr
    || ','
    || prp.x12_code_list_qlfr_lkpcd
    || ','
    || prp.procedure_iid
    || ','
    || prp.mdfr_code
    || ','
    || prp.mdfr2_code
    || ','
    || prp.mdfr3_code
    || ','
    || prp.mdfr4_code
    || ','
    || prp.drug_desc
    || ','
    FROM pa_request_procedure prp,
    pa_request_service prs,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prp.pa_rqst_srvc_sid = prs.pa_rqst_srvc_sid
    AND prs.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HHIPAA.165760000.20110518I001.278_GC04-3.dat';
    SV2 SV201 Product/Service ID
    SV2 SV202 Composite Medical Procedure Identifier
    SV2 SV202-1 Product/Service ID Qualifier
    SV2 SV202-2 Product/Service ID
    SV2 SV202-3 Procedure Modifier
    SV2 202-4 Procedure Modifier
    SV2 SV202-5 Procedure Modifier
    SV2 SV202-6 Procedure Modifier
    SV2 SV202-7 Description
    SV2 SV202-8 Product/Service ID
    SV2 SV203 Monetary Amount
    SV2 SV204 Unit or Basis for Measurement Code
    SV2 SV205 Quantity
    SV2 SV206 Unit Rate
    SV2 SV209 Nursing Home Residential Status Code
    SELECT 'Product/Service ID,Product/Service ID Qual,Product/Service ID,Product Modifier,Product Modifier,Product Modifier,Product Modifier,Description,Unit Rate,'
    FROM DUAL;
    SELECT prp.revenue_iid ||','||
    prp.x12_code_list_qlfr_lkpcd ||','||
    prp.procedure_iid ||','||
    prp.mdfr_code ||','||
    prp.mdfr2_code ||','||
    prp.mdfr3_code ||','||
    prp.mdfr4_code ||','|| prp.drug_desc ||','||
    prp.srvc_line_rate ||','
    FROM pa_request_procedure prp,
    pa_request_service prs,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prp.pa_rqst_srvc_sid = prs.pa_rqst_srvc_sid
    AND prs.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    -- 2000F SV3
    SV301 Composite Medical Procedure Identifier
    SV301-1 Product/Service ID Qualifier
    SV301-2 Product/Service ID
    SV301-3 Procedure Modifier
    SV301-4 Procedure Modifier
    SV301-5 Procedure Modifier
    SV301-6 Procedure Modifier
    SV301-7 Description
    SV301-8 Product/Service ID
    SV302 Monetary Amount
    SV304 Oral Cavity Designation
    SV304-1 Oral Cavity Designation Code
    SV304-2 Oral Cavity Designation Code
    SV304-3 Oral Cavity Designation Code
    SV304-4 Oral Cavity Designation Code
    SV304-5 Oral Cavity Designation Code
    SV305 Prosthesis, Crown or Inlay Code
    SV306 Quantity
    SV307 Description
    select 'Product/Service ID Qual,Product/Service ID,Procedure Modifier,Procedure Modifier,Procedure Modifier,Procedure Modifier,Description,Oral Cavity Designation Code,Oral Cavity Designation Code,Oral Cavity Designation Code,Oral Cavity Designation Code,ProsthesisCrown Inlay Code,Description' from dual;
    SELECT prp.x12_code_list_qlfr_lkpcd
    || ','
    || prp.procedure_iid
    || ','
    || prp.mdfr_code
    || ','
    || prp.mdfr2_code
    || ','
    || prp.mdfr3_code
    || ','
    || prp.mdfr4_code
    || ','
    || prp.drug_desc
    || ','
    || prp.oral_cavity_dsgntn2_cid
    || ','
    || prp.oral_cavity_dsgntn3_cid
    || ','
    || prp.oral_cavity_dsgntn4_cid
    || ','
    || prp.oral_cavity_dsgntn5_cid
    || ','
    || prp.prosthesis_crown_inlay_code
    || ','
    || prp.remark
    || ','
    FROM pa_request_procedure prp,
    pa_request_service prs,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prp.pa_rqst_srvc_sid = prs.pa_rqst_srvc_sid
    AND prs.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    -- 2000F TOO pending Prakash to Write
    --Tooth Information
    SELECT 'Industry Code,Tooth Surface,TOO03-1_Tooth Surface Code,TOO03-2_Tooth Surface Code,TOO03-3_Tooth Surface Code,TOO03-4_Tooth Surface Code,'
    FROM DUAL;
    SELECT prp.tooth_number_cid
    || ','
    || prp.tooth_surface_cid
    || ','
    || prp.tooth_surface2_cid
    || ','
    || prp.tooth_surface3_cid
    || ','
    || prp.tooth_surface4_cid
    || ','
    || prp.tooth_surface5_cid
    || ','
    FROM pa_request_procedure prp,
    pa_request_service prs,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prp.pa_rqst_srvc_sid = prs.pa_rqst_srvc_sid
    AND prs.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    --tooth SItuational  Information
    select 'Monetary Amount,Quantity' from dual;
    SELECT prpt.rqst_prcdr_amt||','|| prpt.rqst_prcdr_units||','
    FROM pa_rqst_prcdr_transaction prpt,
    pa_request_procedure prp,
    pa_request_service prs,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prpt.pa_rqst_prcdr_sid = prp.pa_rqst_prcdr_sid
    AND prp.pa_rqst_srvc_sid = prs.pa_rqst_srvc_sid
    AND prs.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    -- pa_rqst_prcdr_x_prvdr_lctn
    select 'pa_rqst_prcdr_sid,pa_rqst_x_prvdr_lctn_sid' from dual;
    SELECT prppl.pa_rqst_prcdr_sid||','|| prppl.pa_rqst_x_prvdr_lctn_sid||','
    FROM pa_rqst_prcdr_x_prvdr_lctn prppl,
    pa_request_procedure prp,
    pa_request_service prs,
    pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf
    WHERE prppl.pa_rqst_prcdr_sid = prp.pa_rqst_prcdr_sid
    AND prp.pa_rqst_srvc_sid = prs.pa_rqst_srvc_sid
    AND prs.pa_rqst_sid = pr.pa_rqst_sid
    AND pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    -- error Details
    --Header level error details
    SELECT 'pa_rqst_sid,pa_error_nmbr,pa_error_sid,reject_reason_lkpcd,follow_up_action_lkpcd,aaa_segment_loop_nmbr,run_nmbr,'
    FROM DUAL;
    SELECT prre.pa_rqst_sid
    || ','
    || pe.pa_error_nmbr
    || ','
    || pe.pa_error_sid
    || ','
    || ped.reject_reason_lkpcd
    || ','
    || ped.follow_up_action_lkpcd
    || ','
    || ped.aaa_segment_loop_nmbr
    || ','
    || prre.run_nmbr
    || ','
    FROM pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf,
    pa_request_run_error prre,
    pa_error pe,
    pa_error_detail ped
    WHERE pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND pr.pa_rqst_sid = prre.pa_rqst_sid
    AND prre.pa_error_sid = pe.pa_error_sid
    AND pe.pa_error_sid = ped.pa_error_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    ---Line Level Error Details
    SELECT 'pa_rqst_sid,pa_error_nmbr,pa_error_sid,reject_reason_lkpcd,follow_up_action_lkpcd,aaa_segment_loop_nmbr'
    FROM DUAL;
    SELECT pr.pa_rqst_sid
    || ','
    || pe.pa_error_nmbr
    || ','
    || pe.pa_error_sid
    || ','
    || ped.reject_reason_lkpcd
    || ','
    || ped.follow_up_action_lkpcd
    || ','
    || ped.aaa_segment_loop_nmbr
    || ','
    FROM pa_request pr,
    pa_transaction_request ptr,
    input_acknwldgmnt ia,
    input_batch_file ibf,
    pa_request_service prs,
    pa_request_procedure prp,
    pa_request_procedure_run_error prpre,
    pa_error pe,
    pa_error_detail ped
    WHERE pr.pa_trnsctn_rqst_sid = ptr.pa_trnsctn_rqst_sid
    AND ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND pr.pa_rqst_sid = prs.pa_rqst_sid
    AND prs.pa_rqst_srvc_sid = prp.pa_rqst_srvc_sid
    AND prp.pa_rqst_prcdr_sid = prpre.pa_rqst_prcdr_sid
    AND prpre.pa_error_sid = pe.pa_error_sid
    AND pe.pa_error_sid = ped.pa_error_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    SPOOL off
    SET head on
    SET feed on
    SET termout on
    SET pause on

    833560 wrote:
    Hi all,
    I am spooling 30 query results into one CSV file ,I am getting two empty rows for each query.
    Can any one suggest me how to avoid these spaces.
    Thanks & Regards,
    P Prakash
    this is the script i am using to generate csv file .
    SET linesize 12000
    SET pagesize 10000
    SET pause off
    SET termout off
    SET feed off
    SET head off
    SPOOL c:\tes111.csv replace
    SELECT 'ISA01,ISA02,ISA03,ISA04,ISA05,ISA06,ISA07,ISA08,ISA09,ISA11,ISA12,ISA13,ISA14,ISA15,ISA16,GS01,GS02,GS03,GS04,GS05,GS06,GS07,GS08,ST01,ST02,ST03,BHT01,BHT02,BHT03,BHT04,BHT06,trnsctn_segment_count,included_trnsctn_sets_count,included_fnctnl_groups_count,input_acknwldgmnt_sid'
    FROM DUAL;
    SELECT ptr.athrztn_infrmtn_qlfr
    || ','
    || ptr.athrztn_infrmtn
    || ','
    || ptr.scrty_infrmtn_qlfr
    || ','
    || ptr.scrty_infrmtn
    || ','
    || ptr.intrchng_sndr_idntfr_qlfr
    || ','
    || ptr.intrchng_sndr_idntfr
    || ','
    || ptr.intrchng_rcvr_idntfr_qlfr
    || ','
    || ptr.intrchng_rcvr_idntfr
    || ','
    || ptr.intrchng_date
    || ','
    || ptr.intrchng_cntrl_stndrds_idntfr
    || ','
    || ptr.intrchng_cntrl_vrsn_nmbr
    || ','
    || ptr.intrchng_cntrl_nmbr
    || ','
    || ptr.acknwldgmnt_rqstd_indctr
    || ','
    || ptr.usg_indctr
    || ','
    || ptr.cmpnt_elmnt_sprtr
    || ','
    || ptr.fnctnl_idntfr_code
    || ','
    || ptr.aplctn_sndr_code
    || ','
    || ptr.applctn_rcvr_code
    || ','
    || ptr.fnctnl_grp_crtn_date
    || ','
    || ptr.fnctnl_grp_crtn_date
    || ','
    || ptr.grp_cntrl_nmbr
    || ','
    || ptr.rspnsbl_agncy_code
    || ','
    || ptr.vrsn_rls_indstry_idntfr_code
    || ','
    || ptr.trnsctn_set_idntfr_code
    || ','
    || ptr.trnsctn_set_cntrl_nmbr
    || ','
    || ptr.implementation_guide_vrsn_name
    || ','
    || ptr.hierarchical_structure_code
    || ','
    || ptr.trnsctn_set_purpose_lkpcd
    || ','
    || ptr.sbmtr_trnsctn_idntfr
    || ','
    || ptr.trnsctn_set_creation_date
    || ','
    || ptr.trnsctn_type_code
    || ','
    || ptr.trnsctn_segment_count
    || ','
    || ptr.included_trnsctn_sets_count
    || ','
    || ptr.included_fnctnl_groups_count
    || ','
    || ia.input_acknwldgmnt_sid
    || ','
    FROM pa_transaction_request ptr, input_acknwldgmnt ia, input_batch_file ibf
    WHERE ptr.input_acknwldgmnt_sid = ia.input_acknwldgmnt_sid
    AND ia.input_batch_file_sid = ibf.input_batch_file_sid
    AND ibf.original_file_name =
    'HIPAA.165760000.20110518I001.278_GC04-3.dat';
    SELECT 'pa_rqst_sid,NM01,NM02,NM108,NM109'
    FROM DUAL;
    Hi ,
    Save your query in a file and execute that file
    SQL>@a.aqlHope this helps
    Regards,
    Achyut

  • How to remove project using sql with right sequence

    Hi,
    Tried to remove failed project using queries as per sequence specified as below.But getting below error while running final sql script(delete from epub_process where project = '?')
    SQL Error: ORA-02292: integrity constraint (PUB.PROC_HIST_ID_FK) violated - child record found
    02292. 00000 - "integrity constraint (%s.%s) violated - child record found"
    *Cause:    attempted to delete a parent key value that had a foreign
               dependency.
    *Action:   delete dependencies first then parent or disable constraint.
    delete from avm_asset_lock where workspace_id in
    (select id from avm_devline where name in
    (select workspace from epub_project where project_id = 'prj49024'));
    delete from EPUB_PR_HISTORY where project_id in
    (select project_id from epub_project where project_id = 'prj49024');
    delete from epub_project where project_id = 'prj49024';
    delete from EPUB_PROC_HISTORY where process_id in
    (select process_id from epub_process where project = 'prj49024');
    delete from EPUB_PROC_TASKINFO where id in
    (select process_id from epub_process where project = 'prj49024');
    delete from epub_taskinfo where process_id in
    (select process_id from epub_process where project = 'prj49024');
    delete from EPUB_WORKFLOW_STRS where id in
    (select ID from EPUB_IND_WORKFLOW where process_id in
    (select process_id from epub_process where project = 'prj49024'));
    delete  from EPUB_IND_WORKFLOW where process_id in
    (select process_id from epub_process where project = 'prj49024');
    Getting error while executing this script
    delete from epub_process where project = 'prj49024';
    Please let me know right sequence or how to avoid this error
    Thanks
    Sri

    Thanks Shaik.Slight modification to your query working.
    delete from EPUB_PR_HISTORY where project_id in ('prj213002','prj200001');
    delete from EPUB_PROC_HISTORY where process_id in
    (select process_id from epub_process where project in ('prj213002','prj200001'));
    delete from EPUB_PROC_TASKINFO where id in
    (select process_id from epub_process where project in ('prj213002','prj200001'));
    delete from EPUB_IND_WORKFLOW where process_id in
    (select process_id from epub_process where project in ('prj213002','prj200001'));
    delete from epub_process where project in ('prj202001','prj213002');
    delete from avm_asset_lock where workspace_id in
    (select id from avm_devline where name in
    (select workspace from epub_project where project_id in ('prj213002','prj213002')));
    delete from epub_project where project_id in ('prj202001','prj213002');
    commit;

  • How to attach database in sql server 2005 restricted mode

    hi i have a database i want once i have attach database in sql server 2005, anyone cannot do detach, script and delete my database except myself. I mean i want to secure my database to avoid unauthorized persons access
    how it is possible in sql server 2005 express management studio

    There are restrictions for normal Logins but a administrator in SQL server can always detach,script and delete your database.
    Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it.
    My TechNet Wiki Articles

  • Java sql quries help

    Hi
    I confuse on how to transform set difference query into java code to work in java program.
    how do you write a sql query in java that perform set difference.
    R - S
    R Except S (in oracle)
    I want to get all the elements in Set R that are not available in Set S
    I want to write following set difference operation in java
    ( select DOCID, COPYNO
    from COPY
    EXCEPT
    select DOCID, COPYNO
    from RESERVES
    how do convert the above operation to work in java?
    And also how do you do it for set intersection?
    Thanks

    set option is there in ORacle ...
    union
    union all
    intersect
    minus
    syntax
    select col1,col2.... from table1 <set> select col1,col2.... from table2;
    ex
    select a,b from setR intersect select a,b from setX;

Maybe you are looking for