Problems storing sql statement in database
Hi,
I'm writing an application which needs to select a sql statement from an oracle database. The statement should look something like this:
"select id,name,... .from table 1 where id = " + ID + " and name = " + NAME
however when I select this from the database it give a sql error - invalid sql statement, I've tried putting it in the database without quotes, with single quotes etc but I can't seem to get it working.
I'd much appreciate it if any one had any ideas on this.
thanks.
debug it: output the sql string to a println or
JTextArea. See what is in it (and test it) . Must be a
null value in the variables.The variables are set previously in the code
I outputted the sql string to the screen but the variable names are not being replaced by the values.
Similar Messages
-
Strange problem with SQL-Statement
Hi guys,
i encountered a strange problem trying to execute a statement
like this:
Insert Into Data Set Text = 'Exception-Type: {0} Message: {1}';
I'm using createStatement and executeUpdate.
But the message stored looks like:
Exception-Type: 0{} Message: 1{}
I'm using MySQL 3.23. if I use ODBC everthing is o.k.!?
Any suggestions
ThanksI found a solution,
i've thought it through once again. the sql-parsing
mechanism seemed to be the right direction.
i guess the odbc mysql implementation does a sql-statement
conversion, so the string is stored correctly into the
database. the jdbc-implementation doesn't.
if i replace { with \{ it works. the backlash can be used
to masquerade some characters in mysql.
my application is database independent (or it should be)
so i wonder if this works with oracle , db2 etc.
mike -
Problem with sql statement after migration
Hi, recently I copied a production database X to a remote location, to serve as a test upgrade database. Original is 32 bit and test database is 64 bit. After migration it turned out that one sql statement consumed much more CPU during EXECUTE phase than on production database. Explain plans are the same. Why CPU is different? How can I trace the problem?
ORIGINAL SERVER TKPROF OUTPUT:
call count cpu elapsed disk query current rows
Parse 1 0.12 0.33 0 0 2 0
Execute 1 542.60 2165.29 2 6 0 0
Fetch 0 0.00 0.00 0 0 0 0
total 2 542.73 2165.62 2 6 2 0
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 66 (SPB)
Rows Row Source Operation
0 SORT UNIQUE (cr=6 pr=2 pw=0 time=719909655 us)
0 FILTER (cr=6 pr=2 pw=0 time=719909615 us)
2 NESTED LOOPS (cr=0 pr=0 pw=0 time=719895787 us)
2 HASH JOIN (cr=0 pr=0 pw=0 time=719881575 us)
2 NESTED LOOPS (cr=0 pr=0 pw=0 time=1210563833 us)
2 NESTED LOOPS (cr=0 pr=0 pw=0 time=1210549798 us)
2 NESTED LOOPS (cr=0 pr=0 pw=0 time=1210519159 us)
330261 REMOTE TWFLPROCESSINSTANCES (cr=0 pr=0 pw=0 time=29176788 us)
2 REMOTE TAMCONTRACTEDITEMD (cr=0 pr=0 pw=0 time=1177866001 us)
2 REMOTE TAMPROPVALUES (cr=0 pr=0 pw=0 time=30580 us)
2 REMOTE TREPVALUELISTITEMS (cr=0 pr=0 pw=0 time=13973 us)
24542745 REMOTE TAMCONTRACTEDITEMD (cr=0 pr=0 pw=0 time=638116004 us)
2 REMOTE TWFLPROCESSINSTANCES (cr=0 pr=0 pw=0 time=14154 us)
2 INDEX RANGE SCAN IDX_PROCES_ID (cr=6 pr=2 pw=0 time=13706 us)(object id 546934)
Rows Execution Plan
0 INSERT STATEMENT MODE: ALL_ROWS
0 SORT (UNIQUE)
0 FILTER
2 NESTED LOOPS
2 HASH JOIN
2 NESTED LOOPS
2 NESTED LOOPS
2 NESTED LOOPS
330261 REMOTE OF 'TWFLPROCESSINSTANCES' (REMOTE)
[T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "ID","STATUS","STARTDATE"
FROM "DIALOG6"."TWFLPROCESSINSTANCES" "PI" WHERE
"STATUS"<>'A' AND "STATUS"<>'N' AND "STARTDATE">=:1-30
2 REMOTE OF 'TAMCONTRACTEDITEMD' (REMOTE)
[T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "CITEM_ID","ROOTCITEM_ID",
"PRODUCT_ID","CONTRACT_ID" FROM
"DIALOG6"."TAMCONTRACTEDITEMD" "CI" WHERE "PRODUCT_ID"=
934 AND "CONTRACT_ID"=:1
2 REMOTE OF 'TAMPROPVALUES' (REMOTE) [T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "PROPERTY_ID",
"VALUEOBJECT_ID","CONTRACTEDITEM_ID","DTO","ISVALID"
FROM "DIALOG6"."TAMPROPVALUES" "TV" WHERE "DTO" IS NULL
AND "ISVALID"='Y' AND "CONTRACTEDITEM_ID"=:1 AND
"PROPERTY_ID"=930326
2 REMOTE OF 'TREPVALUELISTITEMS' (REMOTE) [T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "ID","NAME" FROM
"DIALOG6"."TREPVALUELISTITEMS" "TVL" WHERE "ID"=:1
24542745 REMOTE OF 'TAMCONTRACTEDITEMD' (REMOTE) [T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "CITEM_ID","CONTRACT_ID" FROM
"DIALOG6"."TAMCONTRACTEDITEMD" "CINAD"
2 REMOTE OF 'TWFLPROCESSINSTANCES' (REMOTE) [T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "ID" FROM
"DIALOG6"."TWFLPROCESSINSTANCES" "SYS_ALIAS_1" WHERE "ID"=
:1
2 INDEX MODE: ANALYZED (RANGE SCAN) OF 'IDX_PROCES_ID'
(INDEX)
REMOTE SERVER TKPROF OUTPUT:
call count cpu elapsed disk query current rows
Parse 1 0.15 0.15 0 0 2 0
Execute 1 1210.69 3831.70 0 6 0 0
Fetch 0 0.00 0.00 0 0 0 0
total 2 1210.85 3831.85 0 6 2 0
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 66 (SPB)
Rows Row Source Operation
0 SORT UNIQUE (cr=6 pr=0 pw=0 time=681448432 us)
0 FILTER (cr=6 pr=0 pw=0 time=681448397 us)
2 NESTED LOOPS (cr=0 pr=0 pw=0 time=681448144 us)
2 HASH JOIN (cr=0 pr=0 pw=0 time=681443808 us)
2 NESTED LOOPS (cr=0 pr=0 pw=0 time=168646003 us)
2 NESTED LOOPS (cr=0 pr=0 pw=0 time=168636029 us)
2 NESTED LOOPS (cr=0 pr=0 pw=0 time=168580989 us)
327667 REMOTE TWFLPROCESSINSTANCES (cr=0 pr=0 pw=0 time=9177863 us)
2 REMOTE TAMCONTRACTEDITEMD (cr=0 pr=0 pw=0 time=158011360 us)
2 REMOTE TAMPROPVALUES (cr=0 pr=0 pw=0 time=55007 us)
2 REMOTE TREPVALUELISTITEMS (cr=0 pr=0 pw=0 time=9947 us)
24542745 REMOTE TAMCONTRACTEDITEMD (cr=0 pr=0 pw=0 time=3509657414 us)
2 REMOTE TWFLPROCESSINSTANCES (cr=0 pr=0 pw=0 time=4309 us)
2 INDEX RANGE SCAN IDX_PROCES_ID (cr=6 pr=0 pw=0 time=160 us)(object id 552075)
Rows Execution Plan
0 INSERT STATEMENT MODE: ALL_ROWS
0 SORT (UNIQUE)
0 FILTER
2 NESTED LOOPS
2 HASH JOIN
2 NESTED LOOPS
2 NESTED LOOPS
2 NESTED LOOPS
327667 REMOTE OF 'TWFLPROCESSINSTANCES' (REMOTE)
[T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "ID","STATUS","STARTDATE"
FROM "DIALOG6"."TWFLPROCESSINSTANCES" "PI" WHERE
"STATUS"<>'A' AND "STATUS"<>'N' AND "STARTDATE">=:1-30
2 REMOTE OF 'TAMCONTRACTEDITEMD' (REMOTE)
[T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "CITEM_ID","ROOTCITEM_ID",
"PRODUCT_ID","CONTRACT_ID" FROM
"DIALOG6"."TAMCONTRACTEDITEMD" "CI" WHERE "PRODUCT_ID"=
934 AND "CONTRACT_ID"=:1
2 REMOTE OF 'TAMPROPVALUES' (REMOTE) [T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "PROPERTY_ID",
"VALUEOBJECT_ID","CONTRACTEDITEM_ID","DTO","ISVALID"
FROM "DIALOG6"."TAMPROPVALUES" "TV" WHERE "DTO" IS NULL
AND "ISVALID"='Y' AND "CONTRACTEDITEM_ID"=:1 AND
"PROPERTY_ID"=930326
2 REMOTE OF 'TREPVALUELISTITEMS' (REMOTE) [T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "ID","NAME" FROM
"DIALOG6"."TREPVALUELISTITEMS" "TVL" WHERE "ID"=:1
24542745 REMOTE OF 'TAMCONTRACTEDITEMD' (REMOTE) [T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "CITEM_ID","CONTRACT_ID" FROM
"DIALOG6"."TAMCONTRACTEDITEMD" "CINAD"
2 REMOTE OF 'TWFLPROCESSINSTANCES' (REMOTE) [T6STDBY.WR]
SELECT /*+ OPAQUE_TRANSFORM */ "ID" FROM
"DIALOG6"."TWFLPROCESSINSTANCES" "SYS_ALIAS_1" WHERE "ID"=
:1
2 INDEX MODE: ANALYZED (RANGE SCAN) OF 'IDX_PROCES_ID'
(INDEX)Edited by: Przemek P on 2012-01-27 07:40
Edited by: Przemek P on 2012-01-27 07:50Could you please edit your post and use \ tags so the output is more user friendly?
Type: \Your Code Here\It will display as:Your Code Here -
Problem constructing SQL statement dynamically
One of our system requirements is to generate a report dynamically based on certain search crieria. I implemented the report by creating a dynamic page. The dynamic page receive the search criteria as page parameters.
Inside the dynamic page, I have an oracle (PL/SQL) section where I built the SQL statement dynamically based on the criteria.
The opening of the cursor, selecting and displaying of the data works fine - no problem there. The only problem I have is with the construction of the where-clause. It almost seems as if the "if-statements" are completely ignored!!
Take for example the following extract that makes use of the page parameter "pSDate" that contains the start date:
whereClause := 'where claimant.kUserName = Claims.fClaimantUserName';
if rTrim(ltrim(to_char(:pSDate))) = '' then
whereClause := whereClause||' and Claims.CaptureDate >= to_date('''||:pSDate||''')';
end if;
After execution of the above the value of "whereClause" is always "where claimant.kUserName = Claims.fClaimantUserName" ... regardless of whether pSDate is populated or not. In other words, I can't get the "then" part of this statement to execute!
By printing out the value of pSDate I verified that it indeed contains/not contains a value. I experimented with various functions (ltrim, to_char...) without any success. I even changed the operator in the condition to <> and it still does not work. I find this really weird.
This is probably something really stupid but being new to PL/SQL I am missing it. Is there anybody out there that knows how I can solve this?Tried it and unfortunatly it does not work.
By specifying the ":" you inform the compiler that it's a parameter to the "dynamic page". As a result it's added as a bind variable of the page. That is visible on the "Customization Form Display Options"-tab.
The dynamic page is "called" from a stored procedure which "pass" values to these parameters. The passing seems to work fine since, when I "print" the parameter value in the page e.g.
htp.p('pSDate: '||:pSDate)
the correct value is displayed.
The question remains, why does it not work when I use this parameter/bind variable in a condition that forms part of a if-statement?
I have tried to assign the parameter to a tmp variable of type varchar2(100) just before the if-statement. Using the tmp variable in the if-statement makes no difference.
Pleeeease can someone help me -
Problem with SQL Statement for Result Filtering
Dear Visual Composer Experts,
Here is another Question from me: I have a SQL Query that is working as the data service
Select AB.AgingBandID, AB.AgingBand,
Sum(Case when priority='Emergency' then '1' Else 0 End) as [Emergency],
Sum(Case when priority='Ugent' then '1' Else 0 End) as Ugent,
Sum(Case when priority='High' then '1' Else 0 End) as High,
Sum(Case when priority='Medium' then '1' Else 0 End) as Medium,
Sum(Case when priority='Low' then '1' Else 0 End) as Low
from DimAgingBand AB left outer join
(Select AgingBandID , priority , yeardesc
from vNotifications where YearDesc = (select year(getdate())-1)) as vN
on AB.AgingBandID=vN.AgingBandID
where AB.AgingBandID<>'1'
Group by AB.AgingBandID, AB.AgingBand
Order by AB.AgingBandID
That would return me a table as in the following:
Agingband E U H M L
< 1week 0 0 0 0 1
1 - 2 weeks 0 0 0 0 0
2 - 4weeks 0 0 0 0 1
> 1month 8 2 1 1 6
Now that I would like to add some parameters to filter the result, so I modify the query and put it in the SQL Statement input port of the same data service. The query is like this:
"Select AB.AgingBandID, AB.AgingBand,Sum(Case when priority='Emergency' then '1' Else 0 End) as [Emergency],Sum(Case when priority='Ugent' then '1' Else 0 End) as Ugent,Sum(Case when priority='High' then '1' Else 0 End) as High,Sum(Case when priority='Medium' then '1' Else 0 End) as Medium,Sum(Case when priority='Low' then '1' Else 0 End) as Low from DimAgingBand AB left outer join (Select AgingBandID , priority , yeardesc from vNotifications where YearDesc like '2009%' and Branch like '" & if(STORE@selectedBranch=='ALL', '%', STORE@selectedBranch) & "' and MainWorkCentre like '%') as vN on AB.AgingBandID=vN.AgingBandID where AB.AgingBandID<>'1' Group by AB.AgingBandID, AB.AgingBand Order by AB.AgingBandID"
However this input port query keeps giving me error as NullPointerException. I have actually specified a condition where the query will run if only STORE@selectedBranch != u2018u2019.
I have other filtering queries working but they are not as complicated query as this one. Could it be possible that query in the input port cannot handle left outer join?
Could it be anything else?
Help is very much appreciated.
Thanks & Regard,
SarahHi,
Thank you very much for your replys. I've tested if the dynamic value of the condition is integer, it's OK
But if the ClassID type is not integer, it's string, I write a SQL Statement like:
"Select DBADMIN.Class.ClassName from DBADMIN.Class where DBADMIN.Class.ClassID = '1' "
or with dynamic condition:
"Select DBADMIN.Class.ClassName from DBADMIN.Class where DBADMIN.Class.ClassID = '"&@ClassID&"'"
or I write the SQL Statement for insert/update/delete data,
I always have errors.
I've tested if the dynamic value of the condition is integer, it's OK
Do you know this problem ?
Thank you very much & kindly regards,
Tweety -
Strage Performance Problems with SQL Statements....
Hi,
I have realized a strange performance collapse while changing simple things in SQL Statements...
I have build a simple Statement:
SELECT
a.AAA,
a.BBB,
a.CCC,
b.AAA
from
TABLE_A a,
TABLE_B b,
TABLE_C c
where
a.XXX=b.XXX
and c.XXX = a.XXX
and c.yyy = 'SOMETHING'
Its very fast, even with complex XSL Transformations...
After Putting a GROUP BY or DISTINCT into the statement (to surpress Dataset "Clones") it tooks around 100 times more Time then before....
I have tested the statement in a SQLPlus, it was as fast as before, but in the XMLPublisher it tooks much longer.....
Have you realizesd this Problem before?
Greetings...PROBLEM SOLVED !
It has to be 8.1.6 across the whole environment.
null -
Problems with SQL statement ..Urgent Help required
Hi
I have a table with something like this
::: inidicates column seperation
col1 ::: col2 ::: col3 ::: col4
ab,abc,abvfg,fghy ::: x1 ::: y1 ::: z1
ba,mkl,huji,kill ::: x2 ::: y2 ::: z2
I want to get something like this :
col1 ::: col2 ::: col3 ::: col4
ab ::: x1 ::: y1 ::: z1
abc ::: x1 ::: y1 ::: z1
abvfg ::: x1 ::: y1 ::: z1
fghy ::: x1 ::: y1 ::: z1
and so on......
Either a procedure or a single sql statement is fine..
PS: the first column can have any number of words separated with comma (,)
Please advise
Thanks in advancecreate table kris (
a varchar2(200),
b varchar2(20),
c varchar2(20),
d varchar2(20));
insert into kris values('ab,abc,abvfg,fghy', 'x1','y1','z1');
insert into kris values('ba,mkl,huji,kill', 'x2','y2','z2');
select substr(','||a||',', instr(','||a||',', ',', 1, rn) +1,
instr(','||a||',', ',', 1, rn+1) - instr(','||a||',', ',', 1, rn) -1)
v,b,c,d
from (select length(a) - length(translate(a, '1,', '1')) +1 L,
a, b, c, d from kris) t, (select rownum rn from cat) c
where c.rn <= t.L
order by a, rn;
V B C D
ab x1 y1 z1
abc x1 y1 z1
abvfg x1 y1 z1
fghy x1 y1 z1
ba x2 y2 z2
mkl x2 y2 z2
huji x2 y2 z2
kill x2 y2 z2 -
hi
i have a strange problem....when i run the following code with the 'if' statement commented out then it works fine. but when i have to search a particular name, say roy , then i include that if statement. but now it gives an error like no such data found.
if the return typ of result.getString(2) is a string type then i wonder what is the problem. i enclose the code below.
import java.sql.*;
import java.io.*;
public class checkDoc
public static void main(String args[])
String name;
ResultSet result;
try
name= "roy";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con;
con = DriverManager.getConnection("jdbc:odbc:MyDataSource","","");
Statement stat = con.createStatement();
result = stat.executeQuery("Select * from Details1");
while (result.next())
/* problem here*/
/* if(result.getString(2).equals(name))
*/ System.out.println(result.getString(2));
catch(Exception e)
System.out.println("Error"+e);thanks alot for that help...but now there is another silly problem!..
i following is perhaps the simplest code possible for insering data into an ACCESS database.(simplest possible with just one column by the name Doc_name and table name is docdetails)...but it gives the error...
"java.sql.SQLException:syntax error or in INSERT INTO statement"
someone plz help!
import java.sql.*;
public class checkDoc4
public static void main(String args[])
ResultSet rs;
try
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con;
con = DriverManager.getConnection("jdbc:odbc:MyDataSource2","","");
Statement stat = con.createStatement();
stat.executeUpdate("INSERT INTO docdetails" +
"VALUES ('ankur')");
catch(Exception e)
System.out.println("Error"+e); -
Storing SQL queries in database itself.
I want to store SQL queries in 9i database itself so that I just need to pass the parameters from VB.NET front end and the query will execute. How can I do this?
Possibly make use of Stored packages/procedures/functions?
Back in 97/98 I had worked with VB (version 6 at that time) application for which I had written stored procedures to do exactly that... (except for select) VB application would pass parameter values to these procedures for doing inserts/updates/deletes. No application user was given direct insert/update/delete privileges.
Also I had triggers written for each of the table involved to keep footprint (user id and date/time) for last update/insert for each of the row.
I don't remember for sure if the application deleted rows from the DB. I think the application handled delete by actually updating a flag (active/inactive) again with a foot print so that you can track back the "deletes".
my 1/2 cent worth of thought
Message was edited by:
user551318 -
Again the SUM and DISTINCT Problem (With SQL Statement)
Here is the actual SQL,
select
NVL(l.pr_cust_prod,'zzzzz') A,
NVL(l.pr_prod_code,'zzzzz') B,
NVL(l.pr_lot_no,'zzzzz') C,
NVL(l.db_waf_qty,'99999') lotQty,
NVL(t.db_cust_po,'zzzzz') poNum,
NVL(p.oe_po_line,'99999') poLineNum,
i.db_shpmt_no invNum,
from
db_invoice i, db_line_lot l, db_inv_item t, db_prod_line p
where
l.db_shpmt_no like 'U388%'
and i.db_invo_date > sysdate - 500
and l.pr_run_type = 'PR'
and l.db_shpmt_no = i.db_shpmt_no
and l.db_shpmt_no = t.db_shpmt_no
and l.db_item_no = t.db_item_no
and p.db_ref_numa1 = t.db_tsmc_po
and l.db_shpmt_no not in
(select distinct db_shpmt_no from ftp_cust_ship
where DB_MAST_ACCT='U388' and sys_name='SENT')
and l.pr_prod_code like '%Z_'
group by l.pr_lot_no, l.db_line_numb, l.pr_cust_prod, l.pr_prod_code,
t.db_cust_po, i.db_delv_cod2, l.db_lot_desc, i.db_shpmt_no,
p.oe_po_line
order by lotNum
the problem is that if I dont use SELECT DISTINCT at beginning
the result is like
F , LOTQTY , PONUM , POLINENUM
DP8568.00,25 ,BVI10080 ,1
DP8568.00,25 ,BVI10080 ,2
DP8568.00,25 ,BVI10080 ,1
DP8568.00,25 ,BVI10080 ,1
DP8568.00,25 ,BVI10080 ,2
DP8568.00,25 ,BVI10080 ,1
DP8568.00,25 ,BVI10080 ,1
DP8568.00,25 ,BVI10080 ,2 //pleae note the QTY and POLINENUM
Then if Add SELECT DISTINCT, the result will be
F ,LOTQTY , PONUM , POLINENUM
DP8568.00,25 ,BVI10080,1
DP8568.00,25 ,BVI10080,2
but I change the NVL(l.db_waf_qty,'99999') lotQty, statement to NVL((SUM( l.db_waf_qty)),'99999') lotQty,
this will give me the result
F ,LOTQTY, PONUM , POLINENUM
DP8568.00,75 , BVI10080 ,2
DP8568.00,125 , BVI10080 ,1
Which I excepted the result as
F ,LOTQTY, PONUM , POLINENUM
DP8568.00,25 , BVI10080 ,2
DP8568.00,25 , BVI10080 ,1
And Advise??
Thanks a lot
Jonbased on the data set you given
SQL>
SQL> With t As
2 (
3 Select 'DP8568' c1 ,0.25 c2,'BVI10080' c3,1 c4 From dual Union All
4 Select 'DP8568' ,0.25 ,'BVI10080' ,2 From dual Union All
5 Select 'DP8568' ,0.25 ,'BVI10080' ,1 From dual Union All
6 Select 'DP8568' ,0.25 ,'BVI10080' ,1 From dual Union All
7 Select 'DP8568' ,0.25 ,'BVI10080' ,2 From dual Union All
8 Select 'DP8568' ,0.25 ,'BVI10080' ,1 From dual Union All
9 Select 'DP8568' ,0.25 ,'BVI10080' ,1 From dual Union All
10 Select 'DP8568' ,0.25 ,'BVI10080' ,2 From dual
11 )
12 Select c1,
13 sum(c2) lot_qty,
14 c3,
15 c4
16 From
17 (
18 Select c1, --Sum(c2) over (Partition By c1,c4 Order By c4)
19 row_number() over (Partition By c1,c4 Order By c4) rn,
20 c2,
21 c3,
22 c4
23 From t
24 ) Where rn = 1
25 Group By c1, c3, c4;
C1 LOT_QTY C3 C4
DP8568 0.25 BVI10080 2
DP8568 0.25 BVI10080 1
SQL> -
Performance Problem in SQL Statement
Hi,
I am using a SELECT statement where the execution time is taking longer time:
SELECT MSD,IMS,BOOK_IND FROM RW_TABLE,TABLE(GET_SUD)
WHERE SERVED_MSISDN=MSD
(MSD Column is a Object type from TABLE Function TABLE(GET_SUD) and (SERVED_MSISDN is a column of the table RW_TABLE)
Any help will be needful for me
Thanks and RegardsYour query:
SELECT MSD,IMS,BOOK_IND
FROM RW_TABLE,TABLE(GET_SUD)
WHERE SERVED_MSISDN=MSDYou reference two tables - RW_TABLE and GET_SUD - yet you have no join between them. Hence Oracle is doing a CARTESIAN PRODUCT between the two data sets. As each table or data set gets bigger, so will the results, and so will the elapsed time.
You need to join the two tables together properly. Read a book on Relational Databases if you do not understand what a join is between tables, and why it is needed.
I would also guess that you lack an index on the SERVED_MSISDN column on its own, or as the leading column in an index. Instead Oracle is reading every entry in an index to find any matching rows (FAST FULL SCAN CTVA_ETL.TEMP_INDX). So again, as the tables get bigger so the FULL SCAN of the whole index will take longer too.
John
[Database Performance Blog|http://databaseperformance.blogspot.com] -
Here is the problem that I have .. I have a table that gets updated every 30 minutes.. and the columns are:
Day Shift MDate
The data is as follows:
wed M 09012003
wed N 09012003
thu M 09022003
thu N 09022003
I want a SQL or PL/SQL that can help me in grabbing the distinct MDate where I have the instance of both M and N in the shift.
For the above data, I want to get distinct MDates as 09012003
09022003
But here is the problem; at some point in time say in the evening.. the data looks like this
wed M 09012003
wed N 09012003
thu M 09022003
For the above data, I want to get distinct MDates as 09012003
This is because "day" column with "thu" does not have both the instances of M and N in the "shift" column
Any help in this regard is highly appreciated..
Thanks in advanceUse 'group by' and 'having':
create table ttest(Day varchar2(3), Shift varchar2(1), MDate varchar(8));
insert into ttest values('wed', 'M', '09012003');
insert into ttest values('wed', 'N', '09012003');
insert into ttest values('thu', 'M', '09022003');
insert into ttest values('thu', 'N', '09022003');
select distinct mdate from ttest group by mdate having count(1) > 1;
MDATE
09012003
09022003
delete from ttest;
insert into ttest values('wed', 'M', '09012003');
insert into ttest values('wed', 'N', '09012003');
insert into ttest values('thu', 'M', '09022003');
select distinct mdate from ttest group by mdate having count(1) > 1;
MDATE
09012003 -
Problem with SQL statement - Missing double quote in identifier
Hi
I am unable to run the following query in TOAD.
SELECT A.* FROM (SELECT VC.CAMPAIGN_NUMBER," +
"VC.CAMPAIGN_TITLE,VC.CAMPAIGN_DESC,VC.START_DATE,VC.END_DATE,VC.CAMPAIGN_TYPE,VC.APPLICABILITY," +
"VC.CAMPAIGN_PRIORITY FROM VM_CAMPAIGN VC WHERE VC.APPLICABILITY = 'Y' and VC.COUNTRY_CODE = ? " +
"and VC.LANGUAGE_CODE = ? AND VC.CAMPAIGN_TYPE = ? AND SYSDATE BETWEEN VC.START_DATE AND " +
"VC.END_DATE AND NOT EXISTS (SELECT 'X' FROM VM_CAMPAIGN_VIN VCV WHERE (VCV.VIN = ? AND " +
"VCV.CAMPAIGN_NUMBER = VC.CAMPAIGN_NUMBER))UNION SELECT VC.CAMPAIGN_NUMBER,VC.CAMPAIGN_TITLE," +
"VC.CAMPAIGN_DESC,VCV.START_DATE,VCV.END_DATE,VC.CAMPAIGN_TYPE,VC.APPLICABILITY,VC.CAMPAIGN_PRIORITY " +
"FROM VM_CAMPAIGN_VIN VCV ,VM_CAMPAIGN VC WHERE VCV.VIN = ? AND " +
"VCV.CAMPAIGN_NUMBER = VC.CAMPAIGN_NUMBER AND VC.COUNTRY_CODE = ? AND VC.LANGUAGE_CODE = ? AND " +
"VC.CAMPAIGN_TYPE = ? AND SYSDATE BETWEEN VCV.START_DATE AND VCV.END_DATE AND SYSDATE BETWEEN " +
"VC.START_DATE AND VC.END_DATE) A ORDER BY A.CAMPAIGN_PRIORITY DESC, A.END_DATE
I am getting "Missing double quote in identifier"
I am not sure how to rectify this SQL code. Any suggestions are welcome
thanks in advancemaybe this will work.
SELECT A.*
FROM (SELECT VC.CAMPAIGN_NUMBER,
VC.CAMPAIGN_TITLE,
VC.CAMPAIGN_DESC,
VC.START_DATE,
VC.END_DATE,
VC.CAMPAIGN_TYPE,VC.APPLICABILITY,
VC.CAMPAIGN_PRIORITY
FROM VM_CAMPAIGN VC
WHERE VC.APPLICABILITY = 'Y'
And VC.COUNTRY_CODE = '&country_code'
And VC.LANGUAGE_CODE = '&language_code'
AND VC.CAMPAIGN_TYPE = '&campaign_type'
AND SYSDATE BETWEEN VC.START_DATE AND VC.END_DATE
AND NOT EXISTS (SELECT 'X'
FROM VM_CAMPAIGN_VIN VCV
WHERE (VCV.VIN = &VIN AND
VCV.CAMPAIGN_NUMBER = VC.CAMPAIGN_NUMBER))
UNION
SELECT VC.CAMPAIGN_NUMBER,
VC.CAMPAIGN_TITLE,
VC.CAMPAIGN_DESC,
VCV.START_DATE,
VCV.END_DATE,
VC.CAMPAIGN_TYPE,
VC.APPLICABILITY,
VC.CAMPAIGN_PRIORITY
FROM VM_CAMPAIGN_VIN VCV,
VM_CAMPAIGN VC
WHERE VCV.VIN = &VIN
AND VCV.CAMPAIGN_NUMBER = VC.CAMPAIGN_NUMBER
AND VC.COUNTRY_CODE = '&country_code'
AND VC.LANGUAGE_CODE = '&language_code'
AND VC.CAMPAIGN_TYPE = '&campaign_type'
AND SYSDATE BETWEEN VCV.START_DATE AND VCV.END_DATE
AND SYSDATE BETWEEN VC.START_DATE AND VC.END_DATE) A
ORDER BY A.CAMPAIGN_PRIORITY DESC, A.END_DATE -
hi,
how write this query in sap
select timestamp,sum(compsubqty) from componentinfo where lotid ='U7084056.1' and Compsubqty>0 having sum(compsubqty)=25304 group by timestamp
order by timestamp desc
help me
regards
sivakumarHi,
You can use the query given by Raymond without the GROUP by clause, as it reduces the performance.
SELECT timestamp sum( compsubqty )
INTO (timestamp, sum_compsubqty)
FROM componentinfo
WHERE lotid = 'U7084056.1' AND compsubqty > 0
HAVING SUM( compsubqty ) = 25304.
After querying you can sort the internal table by timestamp.
sort <itab> descending by timestamp.
Hope this answers your question.
Regards,
Divya. -
Can sql statement be passed as input to Database Adapter?
Hi,
We have requirement to execute the sql statements using database adapter.
Pls let me know if it is feasible in BPEL using partnerlink copy operation of assign activity like we do for setting JNDI name dynamically.
Thanks ,
DhanumjayOracle Enterprise Manager provide Change Management capabilities, we do not at this stage plan to provide this capability within SQL Developer.
See here [http://www.oracle.com/technology/products/oracle9i/datasheets/oem_change_management/9iR2_DS_EMCMPck.html] for more on Change Management within OEM.
Regards
Sue
Maybe you are looking for
-
How can I submit a httprequest in javascript
I would like to submit the url like that : "ReportController?action=logout" in javascript, how can I do that? Because I have implemented a logout menthod for windows onbeforeunload event, which means when user close brower, the logout action will be
-
Itunes and quicktime do not work
When i open itunes, there is a message saying that error has occured, and itunes must be closed, but no error number has shown. When I visit website with quicktime, a message says that an error ocurred inside a plugin inside the page. I did an update
-
BEx Query Designer,点击新建,选择信息范围时,提示:严重服务器错误
各位好 我在新建bw query时,点击新建按钮,选择信息范围,然后就没反应了,估计10分钟后,弹出一个消息: 严重服务器错误 服务器会话可能已终止:此连接不再存在或不稳定 再次登录到服务器以创建新连接 getnodes: rfc exception 在st22中也查看了,是一个超时的error: The program "SAPLRZX0" has exceeded the maximum permitted runtime without interruption and h
-
Just upgraded and cannot send or reply to email
I just bought a MacBook Pro (15"/216gHz/2gig ram) and transfered everything via firewire from my old PowerBook G4. When I attempt to reply or forward email, I click on the button (or use the menu) and absolutely nothing happens. I can click compose a
-
Custom XMP panels in Bridge don't properly set language alternative elements
Using the Bridge Metadata panel, when you edit a custom field that uses the "langalt" type, Bridge doesn't handle this as a language alternative property--it saves the value as a simple text property. This was an issue when I first tried it in CS3 wi