Problem with sql statement
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);
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 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 -
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 -
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 -
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> -
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 -
Problem with SQL connection and a Collection
hi all,
I have two problems with sql...
1. how can I assign the values of a resultset to a collection?
2. how can I close the sql connection, because when I close the statement and connection error shows me in the resultset
thanks!Hello Pablo,
RetrivingResults In Collection:
1) use getObject method, and assign it to collection.
Collection c_obj=new ArrayList();
while(rs.next())
c_obj.add(rs.getInt(Project_ID), rs.getString(Project_Name));
Closing ResultSet
2) The close() methos of ResultSet closes the ResultSet object, like bellow
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
rs.close(); //Closes the result set -
Problem with READ Statement in the field routine of the Transformation
Hi,
I have problem with read statement with binary search in the field routine of the transformation.
read statement is working well when i was checked in the debugging mode, it's not working properly for the bulk load in the background. below are the steps i have implemented in my requirement.
1. I selected the record from the lookuo DSO into one internal table for all entried in source_packeage.
2.i have read same internal table in the field routine for each source_package entry and i am setting the flag for that field .
Code in the start routine
select source accno end_dt acctp from zcam_o11
into table it_zcam
for all entries in source_package
where source = source_package-source
and accno = source_package-accno.
if sy-subrc = 0.
delete it_zcam where acctp <> 3.
delete it_zcam where end_dt initial.
sort it_zcam by surce accno.
endif.
field routine code:
read table it_zcam with key source = source_package-source
accno = source_package-accno
binary search
transportin no fields.
if sy-subrc = 0.
RESULT = 'Y'.
else.
RESULT = 'N'.
endif.
this piece of code exist in the other model there its working fine.when comes to my code it's not working properly, but when i debug the transformation it's working fine for those accno.
the problem is when i do full load the code is not working properly and populating the wrong value in the RESULT field.
this field i am using in the report filter.
please let me know if anybody has the soluton or reason for this strage behaviour.
thanks,
Rahim.i suppose the below is not the actual code. active table of dso would be /bic/azcam_o1100...
1. is the key of zcam_o11 source and accno ?
2. you need to get the sortout of if endif (see code below)
select source accno end_dt acctp from zcam_o11
into table it_zcam
for all entries in source_package
where source = source_package-source
and accno = source_package-accno.
if sy-subrc = 0.
delete it_zcam where acctp 3.
delete it_zcam where end_dt initial.
endif.
sort it_zcam by surce accno.
field routine code:
read table it_zcam with key source = source_package-source
accno = source_package-accno
binary search
transportin no fields.
if sy-subrc = 0.
RESULT = 'Y'.
else.
RESULT = 'N'.
endif. -
Hi
I am using Flex to insert data through remoteobject and using
SAVE method generated from CFC Wizard.
My VO contains the following variables where id has a default
value of 0 :
public var id:Number = 0 ;
public var date:String = "";
public var accountno:String = "";
public var debit:Number = 0;
public var credit:Number = 0;
id is set as the primary key in my database.
I have previously used MySQL which automatically generates a
new id if I either omitted the id value in my insert statement or
use 0 as the default value.
However, now I am using MS SQL Server and the insert
generated this error:
Unable to invoke CFC - Error Executing Database Query.
Detail:
[Macromedia][SQLServer JDBC Driver][SQLServer]Cannot insert
explicit value for identity column in table 'Transactions' when
IDENTITY_INSERT is set to OFF.
Strange thing is that I dont see this problem with another
sample application. I compared with that application (it has the
same VO with default value of 0 for id) and everything looks
similar so I can't understand why I have this error in my
application.
This is SQL used to create the table:
USE [Transactions]
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET ANSI_PADDING ON
CREATE TABLE [dbo].[Transactions](
[id] [int] IDENTITY(1,1) NOT NULL,
[date] [datetime] NULL,
[accountno] [varchar](100) NULL,
[debit] [int] NULL,
[credit] [int] NULL,
CONSTRAINT [PK_Transactions] PRIMARY KEY CLUSTERED
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE =
OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Has anyone encountered this problem before with insert
statements dealing with a unique id (with MS SQL Server)?Change "addRecords =
connection.prepareStatement("
to "addRecords =
connection.preparedStatement("
-BIGD -
Problem with PIVOT statement and ORA-56901
Hi,
I am having a problem with PIVOT in Oracle.
I have a view in an oracle 11g database
that returns me data in the format:- (... indicates left out text)
DefinitionID ... AttributeValue FieldID
============ ============== =======
... 3000 X30a9...
... JohnN X4674...
I am then trying to use a PIVOT statement to hopefully give me data
in the format
COLUMN1 COLUMN2
======= =======
JohnN 3000
The PIVOT statement I am trying is
SELECT X4674... AS Column1,
X30A9... AS COLUMN2
FROM (SELECT instanceid, definitionid, attributevalue, FIELDID
FROM PI_ENTITY_INSTANCE_VIEW) up PIVOT (MAX(ATTRIBUTEVALUE)
FOR FIELDID IN (X4674...,X30A9... ) )
where definitionid = hextoraw('7353C67A56C74B5A8234CD16064399E8')
I have used a very similar VIEW and PIVOT statement for sql server
(with necessary changes for Oracle applied) and the
data returns in SQL Server as expected.
Unfortunately I am getting the Oracle error
ORA-56901: non-constant expression is not allowed for pivot|unpivot values
Is there anyway to get a PIVOT working on Oracle where I use the
fieldid's like I do above or is there some other way to supply the vales to the
IN clause to overcome this error?
Thank you for any help you can provide
John NugentHi, John,
Welcome to the forum!
X4674, X30A9 and os on are the literal values that you're looking for, right?
In Oracle, string literals need to be enclosed in single-quotes, like this:
FOR FIELDID IN ('X4674', 'X30A9') You might find it more convenient to assign column aliases in the PIVOT clause, like this:
PIVOT ( MAX (attributevalue)
FOR fieldid IN ( 'X4674' AS column1
, 'X30A9' AS column2
) Remember that anything inside quotes is case-sensitive, so 'X30A9' is not equal to 'X30a9'. Use UPPER (or LOWER) to do case-insensitive string comparisons.
I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all tables, and also post the results you want from that data.
Explain, using specific examples, how you get those results from that data.
If you can use commonly available tables (such as those in the scott or hr schemas) to show your problem, then you don't have to post any sample data; just the results and explanation.
Always say which version of Oracle you're using. You did say you were using Oracle 11g, but there's no 11f or 11h, and sometimes the difference between, say 11.1 and 11.2 can be significant. Why not say exactly what you're using, e.g. 11.1.0.7.0?
You'll get better answers faster if you always supply this information whenever you post a question.
Edited by: Frank Kulash on Sep 22, 2011 2:09 PM
Added allliterative alias alternative
Edited by: Frank Kulash on Sep 22, 2011 4:04 PM -
Emergency: problem with update statement!
hello guys, i have a very serious problem with an update statement in pl/sql.
i had an application written in sybase, where i had the following update statement:
update mis_dik_adeia
set trexon_etos_days = days_per_year
from mis_dik_adeia, mis_plafon_adeivn
where mis_dik_adeia.adeia_id = mis_plafon_adeivn.adeia_id
and mis_dik_adeia.adeia_id between :aapo and :aews
and mis_dik_adeia.employee_id = :erg
and mis_dik_adeia.etos = :etos
and mis_plafon_adeivn.years_yphr = ( select max( a.years_yphr ) from mis_plafon_adeivn a where a.adeia_id = mis_plafon_adeivn.adeia_id and a.years_yphr <= :eth ) using sqlca;
This is working properly in sybase. When i copied this code in pl/sql it displayed me error and it's impossible to work. Then i thought to make a nested select statement like this:
update mis_dik_adeia
set trexon_etos_days = (select days_per_year
from mis_dik_adeia, mis_plafon_adeivn
where mis_dik_adeia.adeia_id = mis_plafon_adeivn.adeia_id
and mis_dik_adeia.adeia_id between aapo and aews
and mis_dik_adeia.employee_id = erg
and mis_dik_adeia.etos = etos1
and mis_plafon_adeivn.years_yphr = (
select max( a.years_yphr )
from mis_plafon_adeivn a
where a.adeia_id = mis_plafon_adeivn.adeia_id
and a.years_yphr <= eth )
but as you can understand, it is working, but it doesn't produce the same results as the update statement in Sybase!
It is very important for me to solve this problem , which is a very big trouble for me for a long time.
Please if anyone can help me i would appreciate it a lot!
Regards ,
Bill...Bill,
folowing the logic of your original query by Sybase
(it's embedded SQL in Power Builder, isn't it ?):
update mis_dik_adeia
set trexon_etos_days = (select days_per_year
from mis_plafon_adeivn
where mis_dik_adeia.adeia_id = mis_plafon_adeivn.adeia_id
and mis_plafon_adeivn.years_yphr = (
select max( a.years_yphr )
from mis_plafon_adeivn a
where a.adeia_id = mis_plafon_adeivn.adeia_id
and a.years_yphr <= eth )
where
mis_dik_adeia.adeia_id between aapo and aews
and mis_dik_adeia.employee_id = erg
and mis_dik_adeia.etos = etos1
and
exists (select 1
from mis_plafon_adeivn
where mis_dik_adeia.adeia_id = mis_plafon_adeivn.adeia_id
and mis_plafon_adeivn.years_yphr = (
select max( a.years_yphr )
from mis_plafon_adeivn a
where a.adeia_id = mis_plafon_adeivn.adeia_id
and a.years_yphr <= eth )
In 9i you can also try the following:
megre into mis_dik_adeia
using (
select
days_per_year,
mis_dik_adeia.rowid rid
from mis_dik_adeia, mis_plafon_adeivn
where mis_dik_adeia.adeia_id = mis_plafon_adeivn.adeia_id
mis_dik_adeia.adeia_id between aapo and aews
and mis_dik_adeia.employee_id = erg
and mis_dik_adeia.etos = etos1
and mis_plafon_adeivn.years_yphr =
(select max( a.years_yphr )
from mis_plafon_adeivn a
where a.adeia_id = mis_plafon_adeivn.adeia_id
and a.years_yphr <= eth)
) src
on (mis_dik_adeia.rowid = src.rid)
when matched then
update set mis_dik_adeia.trexon_etos_days = src.days_per_year
when not matched then
insert (mis_dik_adeia.adeia_id) values(0);
In 10G it can be easily:
megre into mis_dik_adeia
using (
select
days_per_year,
mis_dik_adeia.rowid rid
from mis_dik_adeia, mis_plafon_adeivn
where mis_dik_adeia.adeia_id = mis_plafon_adeivn.adeia_id
mis_dik_adeia.adeia_id between aapo and aews
and mis_dik_adeia.employee_id = erg
and mis_dik_adeia.etos = etos1
and mis_plafon_adeivn.years_yphr =
(select max( a.years_yphr )
from mis_plafon_adeivn a
where a.adeia_id = mis_plafon_adeivn.adeia_id
and a.years_yphr <= eth)
) src
on (mis_dik_adeia.rowid = src.rid)
when matched then
update set mis_dik_adeia.trexon_etos_days = src.days_per_year;
I have to notice I didn't check it carefully, so I can miss...
Rgds.
Corrected a mistake in the table name
Message was edited by:
dnikiforov -
Hi All,
We are encountering a strange problem with the merge command.
The following statement works :-
merge into ATTRIBUTE_GROUP@US_PRODUCT_UAT a
using
select
a1.group_id,
a1.NAME,
a1.CREATE_DATE,
a1.MODIFY_DATE
from
ATTRIBUTE_GROUP_LOG a1,
product_push_wrk a2
where
a2.column_id = a1.group_id and
a2.modify_date = a1.modify_date ) b
on ( a.group_id = b.group_id)
when matched then
update set
a.NAME = b.NAME,
a.CREATE_DATE = b.CREATE_DATE,
a.MODIFY_DATE = b.MODIFY_DATE
when not matched then
insert
a.group_id,
a.NAME,
a.CREATE_DATE,
a.MODIFY_DATE
values
b.group_id,
b.NAME,
b.CREATE_DATE,
b.MODIFY_DATE
However when we change the order of the columns in the select query as follows the an error occurs : -
merge into ATTRIBUTE_GROUP@US_PRODUCT_UAT a
using
select
a1.NAME,
a1.group_id,
a1.CREATE_DATE,
a1.MODIFY_DATE
from
ATTRIBUTE_GROUP_LOG a1,
product_push_wrk a2
where
a2.column_id = a1.group_id and
a2.modify_date = a1.modify_date ) b
on ( a.group_id = b.group_id)
when matched then
update set
a.NAME = b.NAME,
a.CREATE_DATE = b.CREATE_DATE,
a.MODIFY_DATE = b.MODIFY_DATE
when not matched then
insert
a.group_id,
a.NAME,
a.CREATE_DATE,
a.MODIFY_DATE
values
b.group_id,
b.NAME,
b.CREATE_DATE,
b.MODIFY_DATE
ERROR at line 15:
ORA-00904: "B"."GROUP_ID": invalid identifier
SQL> l 15
15* on ( a.group_id = b.group_id)
The structure of the attribute_log table is as follows :-
SQL> desc ATTRIBUTE_GROUP
Name Null? Type
GROUP_ID NOT NULL NUMBER
NAME NOT NULL VARCHAR2(96)
CREATE_DATE NOT NULL DATE
MODIFY_DATE NOT NULL DATE
Any pointers to the cause of this error will be highly appreciated.
Thanks and Regards,
SumanThe table structures are as follows :-
04:17:17 SQL> desc product_push_wrk
Name Null? Type
COLUMN_ID NOT NULL NUMBER
TYPE NOT NULL VARCHAR2(10)
PARENT_COLUMN_ID NUMBER
LEVEL_NO NUMBER
MODIFY_DATE NOT NULL DATE
04:17:25 SQL> desc ATTRIBUTE_GROUP_LOG
Name Null? Type
GROUP_ID NOT NULL NUMBER
NAME NOT NULL VARCHAR2(96)
CREATE_DATE DATE
MODIFY_DATE DATE
04:18:02 SQL> desc ATTRIBUTE_GROUP
Name Null? Type
GROUP_ID NOT NULL NUMBER
NAME NOT NULL VARCHAR2(96)
CREATE_DATE DATE
MODIFY_DATE DATE
Maybe you are looking for
-
Adobe Acrobat 9 Standard download/trial version
Hello, I am looking for a download for Adobe Acrobat 9 STANDARD. I have a valid key, but no CD. I've been to http://prodesigntools.com/all-adobe-cs5-direct-download-links.html but that is all PROFESSIONAL versions. Is there anywhere on the Internet w
-
SAP Business One - Sales Analysis by Item - Adding Columns
Is it possible to add columns to the Sales Analysis by Item report? As it is right now, I cannot add any columns even when I go to form settings. If so, how do I do this? Thank you!
-
I am not sure if this is the correct place to post this question. I work for a company that has an intranet and very active firewall. I recently upgrade to Leopard (10.5.2) on a 2.66GHz Dual-Core Intel Xeon. I usually have Safari, Apple Mail and acce
-
Help with Positioning Layers is Browser
Hello, I'm new to Dreamweaver, and I'm having trouble getting past this first stage: I want to begin with a background picture, and put blocks of text on top of the picture in certain areas ( I have been putting the text in layers). I have an image i
-
My pictures get shuffled into wrong events when syncing to iPad mini. Any suggestions?