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
-
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 SolerAlthough 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 -
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 REASONOFTEN 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,
AnandHi 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 GuggillaHi...
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. -
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 NetworkIts 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:
LeeladharPlease 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 on833560 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
SriThanks 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 studioThere 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 -
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?
Thanksset 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
-
MB_MIGO_BADI - Line item data inside CHECK_ITEMS method
Hi All, I have implement MB_MIGO_BADI and i want to put a check inside the method CHECK_ITEMS where the importing parameter is line ID. How can I get the data for the line based on the line ID inside the check_items methods, so that I can make the cu
-
HELP ~ Does disputing credit reports really work?? Nervous!!
Hi Guys,I'm working on my husband's and my credit. I'm drafting a dispute letter found on the MY Fico site and well, I'm a bit nervous! I'm hoping to get all the collections removed because of errors and the misrepresentation of reporting as Facto
-
How to mount database copy without specific datafiles
Hello all, I need to make a database copy without specific datafiles. This is due to, in the copy, I just need some, not all, datafiles. I tried the following command: startup mount alter tablespace mydata offlineBut it appears that the database must
-
ALL OUT THERE!!!!!!! i need help cause i dont know how to configure the Enviromental Values in Advance properties on my pc so the compiler of the version of java JDK 5 with update 8 can work cause i cant compile any of my programs if i dont configure
-
Do we need antivirus for macbook pro
i am wondering if we need a antivirus for mac pro.