Query works in Oracle Client but not JDBC
The query is as follows:
SELECT COUNT(*) THE_COUNT FROM sentorders WHERE ordersentdate BETWEEN '15-JAN-01' and '15-JAN-03';When I run this query in the Oracle client (SQL+) it tells me that THE_COUNT is 4 which is correct but when I use the following JDBC code I get THE_COUNT is 0 which is incorrect.
public ResultSet viewTotalSentOrdersByDate()
throws SQLException, Exception {
String beginDate = "15-JAN-01";
String endDate = "15-JAN-03";
ResultSet rs = null;
try {
String queryString = ("SELECT COUNT(*) THE_COUNT FROM sentorders WHERE ordersentdate BETWEEN '" + beginDate + "' and '" + endDate + "'");
System.out.println(queryString);
Statement stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while(rs.next()) {
System.out.println(rs.getString("THE_COUNT"))
} catch (SQLException sqle) {
error = "SQLException: Could not execute the query.";
throw new SQLException(error);
} catch (Exception e) {
error = "An exception occured.";
throw new Exception(error);
return rs;
}Thanks for the help
Zac
The query is as follows:
SELECT COUNT(*) THE_COUNT FROM sentorders WHERE ordersentdate BETWEEN '15-JAN-01' and '15-JAN-03';When I run this query in the Oracle client (SQL+) it tells me that THE_COUNT is 4 which is correct but when I use the following JDBC code I get THE_COUNT is 0 which is incorrect.
public ResultSet viewTotalSentOrdersByDate()
throws SQLException, Exception {
String beginDate = "15-JAN-01";
String endDate = "15-JAN-03";
ResultSet rs = null;
try {
String queryString = ("SELECT COUNT(*) THE_COUNT FROM sentorders WHERE ordersentdate BETWEEN '" + beginDate + "' and '" + endDate + "'");
System.out.println(queryString);
Statement stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while(rs.next()) {
System.out.println(rs.getString("THE_COUNT"))
} catch (SQLException sqle) {
error = "SQLException: Could not execute the query.";
throw new SQLException(error);
} catch (Exception e) {
error = "An exception occured.";
throw new Exception(error);
return rs;
}Thanks for the help
Zac
Similar Messages
-
WDTHEMEROOT works in one client but not another
I'm looking at using the WDTHEMEROOT application parameter to set a theme. I've set it to 'sap-chrome' in our development client and that works fine when I test the application. When I log into another client on the same system, however, the WDTHEMEROOT parameter has no effect. I'm guessing there is a setting in the first client but not in the second but I don't know what that might be. Any ideas ?
thanks,
Malcolm.Well,
I guess my excitement was shortlived. I changed the theme and did whatever the note suggested. It worked!
But then I changed it back to 'sap_chrome' and did all that the note suggested - it did not work. I am now stuck with the new incomplete theme and am not able to change it back to what it was earlier.
Any Help?
Thanks,
Sanjiv -
SQL query works in access 2000 but not through JDBC
Hello to all as my first posted message, I have a bit of a pickle on my hands. I have a query which is critical to for my application to function.
In Access 2000
SELECT sb.SeatName
FROM SeatBooking sb, Movie m, MovieSession ms, Booking b
WHERE m.MovieId = ms.MovieId
AND ms.MovieSessionId = b.MovieSessionId
AND b.BookingId = sb.BookingId
AND ms.DateOfSession = #2003/04/16 07:15:00 PM#;
This query works fine. When I insert it into my code
String query = "SELECT sb.SeatName \n" +
"FROM SeatBooking sb, Movie m, MovieSession ms, Booking b \n" +
"WHERE m.MovieId = ms.MovieId \n" +
"AND ms.MovieSessionId = b.MovieSessionId \n" +
"AND b.BookingId = sb.BookingId \n" +
"AND ms.DateOfSession = #" +
cp.getMovieSessionAt(i).getTrueTimeOfSession() + "#;";
The last line of code returns #2003/04/16 07:15:00 PM#; Which is the exact same as in Access.
To rule out some possibilities
- there are other less complicated queries which access the same database but work fine. so my code seems to be ok
- I have tried to use Format() on ms.DateOfSession to match the return value of the java statement (Which is a general date in Access in the format of 16/04/2003 7:15:00 PM)
Any suggestions would be appreciated!Hi Simon,
On my Windows XP system with J2SE SDK version 1.4.1_02 and Micro$oft Access 2002, I have the following table:
column name column type
id Number
name Text
updated Date/TimeUsing the JDBC-ODBC bridge driver (that is part of the J2SE distribution), the following code uses the JDBC "escape" syntax -- and it works.
import java.sql.*;
public class JdbcOdbc {
public static void main(String[] args) {
Connection dbConn = null;
ResultSet rs = null;
Statement stmt = null;
String sql =
"SELECT * FROM Table1 WHERE updated = {ts '2003-04-13 07:53:23'}";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
dbConn = DriverManager.getConnection("jdbc:odbc:db1");
stmt = dbConn.createStatement();
rs = stmt.executeQuery(sql);
if (rs.next()) {
System.out.println("id = " + rs.getInt(1));
System.out.println("name = " + rs.getString(2));
System.out.println("updated = " + rs.getTimestamp(3));
catch (SQLException sqlEx) {
System.err.println("Database operation failed.");
sqlEx.printStackTrace();
catch (ClassNotFoundException cnfEx) {
System.err.println("JDBC driver class not found");
cnfEx.printStackTrace();
finally {
if (rs != null) {
try {
rs.close();
catch (SQLException sqlEx) {
System.err.println("ERROR: Failed to close result set");
sqlEx.printStackTrace();
if (stmt != null) {
try {
stmt.close();
catch (SQLException sqlEx) {
System.err.println("ERROR: Failed to close statement");
sqlEx.printStackTrace();
if (dbConn != null) {
try {
dbConn.close();
catch (SQLException sqlEx) {
System.err.println("ERROR: Failed to close DB connection");
sqlEx.printStackTrace();
}More details about the JDBC escape syntax are available here:
http://java.sun.com/j2se/1.4.1/docs/guide/jdbc/getstart/statement.html#999472
Hope this helps you.
Good Luck,
Avi. -
Query works in DB GUI, but not in CF
Hello,
I keep getting a CF error of "invalid character" for the
attached query.
Detailed error message: [Macromedia][Oracle JDBC
Driver][Oracle]ORA-00911: invalid character
I realize that's an Oracle error code, but the query works in
an Oracle db GUI (Toad).
Has anyone experienced this kind of situation?
Thank you.I've never tried using DDL in a CFQUERY myself with an Oracle
db, but you might try putting the entire statement inline (as in a
single line), rather than breaking it out like you did. It would be
hard to read, but it might parse better....... just a thought. I've
had similar problems with EXECUTE statements within a CFQUERY that
worked just fine when I rewrote them with no line breaks, etc.
Phil -
Query working fine in toad but not in forms 6i
i have following coding on when button press triger
declare
CURSOR C1(year number,month number) IS
SELECT ITM_NO,ITM_NAME,XAQ QTY,XAQ*TP VAL,gp
FROM
select ci.itm_no ITM_NO,ci.itm_name ITM_NAME ,cpg.group_id gp ,xaq ,ALLIED.CORP_PRIC_TP( ci.itm_no)TP from
select prod_no,sum(xaq)*1 xaq
from
select prod_no, sum(nvl(xrd_sqty,0)) Xaq
from allied.mrk_01_02
where year=year and f_prd=month
and area_id in (10200,10400,10100,10300,10500,20500,20300,20100,20200,20400,30100,30400,30300,30200)
group by prod_no
union all
select prod_no, sum(nvl(xrd_sqty,0)) Xaq
from allied.mrk_02_02
where year=year and f_prd=month
and area_id in (10200,10400,10100,10300,10500,20500,20300,20100,20200,20400,30100,30400,30300,30200)
group by prod_no
union all
select prod_no, sum(nvl(xrd_sqty,0)) Xaq
from allied.mrk_03_02
where year=year and f_prd=month
and area_id in (10200,10400,10100,10300,10500,20500,20300,20100,20200,20400,30100,30400,30300,30200)
group by prod_no
union all
select prod_no, sum(nvl(xrd_sqty,0)) Xaq
from allied.mrk_04_02
where year=year and f_prd=month
and area_id in (10200,10400,10100,10300,10500,20500,20300,20100,20200,20400,30100,30400,30300,30200)
group by prod_no
group by prod_no
) A,allied.corp_inv ci,allied.corp_01_01 c01, allied.corp_01_02 c02,allied.corp_prod_group cpg,allied.v_prod_grp vpg
where ci.itm_no=a.prod_no
and ci.itm_no=c02.itm_no
and c01.grp_id=c02.grp_id
and c01.grp_id in(55,56,57,58,59)
and vpg.prod_no =ci.itm_no
and vpg.group_id=cpg.group_id
where XAQ <>0;
Begin
delete from fiaz.tmp_topten_prod;
for i in c1(:year,:month)
loop
insert into fiaz.tmp_topten_prod
values(i.itm_no,i.itm_name,i.qty,i.val,i.gp,0);
end loop;
standard.commit;
message('inserted in temp');
exception when others then
message (dbms_error_text);
message (dbms_error_text);
End;
Same Query (as used in cursor c1) works fine in toad but giving wrong result from forms... and the problem is xaq field i.e returns incorrect qty...
i guess union clause is not working in this situation...
plz suggest me the appropriate changes in the query to work well from form as well...
combination:Forms 6i,Oracle 8.0.6
Regards,
Usman AfzalAs per your suggestion i have created a stored procedure but the followin error prevents procedure creation
create or replace procedure fiaz.topten_prod(v_yr number,v_mn number) is
begin
delete from fiaz.tmp_topten_prod;
insert into fiaz.tmp_topten_prod(itm_no,itm_name,qty,val,grp_id,prority)
SELECT ITM_NO,ITM_NAME,XAQ QTY,XAQ*TP VAL,gp,0
FROM
select ci.itm_no ITM_NO,ci.itm_name ITM_NAME ,cpg.group_id gp ,xaq ,ALLIED.CORP_PRIC_TP( ci.itm_no)TP from
select prod_no,sum(xaq) xaq
from
select prod_no, sum(nvl(xrd_sqty,0)) Xaq from allied.mrk_01_02
where year=v_yr and f_prd=v_mn
and area_id in (10200,10400,10100,10300,10500,20500,20300,20100,20200,20400,30100,30400,30300,30200)
group by prod_no
union all
select prod_no, sum(nvl(xrd_sqty,0)) Xaq
from allied.mrk_02_02
where year=v_yr and f_prd=v_mn
and area_id in (10200,10400,10100,10300,10500,20500,20300,20100,20200,20400,30100,30400,30300,30200)
group by prod_no
union all
select prod_no, sum(nvl(xrd_sqty,0)) Xaq
from allied.mrk_03_02
where year=v_yr and f_prd=v_mn
and area_id in (10200,10400,10100,10300,10500,20500,20300,20100,20200,20400,30100,30400,30300,30200)
group by prod_no
union all
select prod_no, sum(nvl(xrd_sqty,0)) Xaq
from allied.mrk_04_02
where year=v_yr and f_prd=v_mn
and area_id in (10200,10400,10100,10300,10500,20500,20300,20100,20200,20400,30100,30400,30300,30200)
group by prod_no
group by prod_no
) A,allied.corp_inv ci,allied.corp_01_01 c01, allied.corp_01_02 c02,allied.corp_prod_group cpg,allied.v_prod_grp vpg
where ci.itm_no=a.prod_no
and ci.itm_no=c02.itm_no
and c01.grp_id=c02.grp_id
and c01.grp_id in(55,56,57,58,59)
and vpg.prod_no =ci.itm_no
and vpg.group_id=cpg.group_id
where XAQ <>0;
commit;
end;
Error:
"PLS-00201: identifier ALLIED.MRK_01_02 must be declared "
i have not changed any thing in query working fine in toad without create procedure text and if i describe this table it shows the structure (desc allied.mrk_01_02)
Now where is the problemmmmm
Plz Help -
Cursor query works in anonymous block but not in procedure
Hello,
My cursor query works fine in anonymous blcok but fails in pl/sql block.
Anonymous block:
declare
cursor c1 is
select object_name
from all_objects
where owner='IRIS_DATA'
and object_type='SEQUENCE';
v_string varchar2(2000);
begin
for c2 in c1 loop
v_string := 'DROP SEQUENCE IRIS_DATA.'||c2.object_name;
execute immediate v_string;
end loop;
commit;
exception
when others then
dbms_output.put_line('Exception :'||sqlerrm);
end;
works fine.
but inside the procedure the it doesn't go inside the cursor loop
procedure get_sequence is
l_dp_handle NUMBER;
v_job_state varchar2(4000);
l_last_job_state VARCHAR2(30) := 'UNDEFINED';
l_job_state VARCHAR2(30) := 'UNDEFINED';
l_sts KU$_STATUS;
v_logs ku$_LogEntry;
v_row PLS_INTEGER;
v_string1 varchar2(2000);
cursor seq_obj is
select object_name
from all_objects
where owner='IRIS_DATA'
and object_type='SEQUENCE';
begin
log_status('get_sequence started.');
--Cursor records to drop the sequences before importing.
for seq_obj_rec in seq_obj loop
log_status('get_sequence: Dropping sequence started.');
v_string1 := 'DROP SEQUENCE IRIS_DATA.'||seq_obj_rec.object_name;
execute immediate v_string1;
end loop;
log_status('get_sequence: Dropping sequence completed.');
exception
WHEN OTHERS THEN
log_status('get_sequence: exception.');
end get_sequence;
it's not going into the seq_obj_rec cursor.
I granted select on all_objects to the user.this user is also having the DBA role as well.
Please advice.PROCEDURE Get_sequence
IS
l_dp_handle NUMBER;
v_job_state VARCHAR2(4000);
l_last_job_state VARCHAR2(30) := 'UNDEFINED';
l_job_state VARCHAR2(30) := 'UNDEFINED';
l_sts KU$_STATUS;
v_logs KU$_LOGENTRY;
v_row PLS_INTEGER;
v_string1 VARCHAR2(2000);
CURSOR seq_obj IS
SELECT object_name
FROM all_objects
WHERE owner = 'IRIS_DATA'
AND object_type = 'SEQUENCE';
BEGIN
Log_status('get_sequence started.');
--Cursor records to drop the sequences before importing.
FOR seq_obj_rec IN seq_obj LOOP
Log_status('get_sequence: Dropping sequence started.');
v_string1 := 'DROP SEQUENCE IRIS_DATA.'
||seq_obj_rec.object_name;
EXECUTE IMMEDIATE v_string1;
END LOOP;
Log_status('get_sequence: Dropping sequence completed.');
EXCEPTION
WHEN OTHERS THEN
Log_status('get_sequence: exception.');
END get_sequence; How do I ask a question on the forums?
SQL and PL/SQL FAQ
scroll down to #9 & use tags in the future. -
Why will a query work in SQL Developer but not in Apex?
Here's a good one. I created a dynamic LOV with the following query.
select
e.DESCR d,
ee.ENTRD_EVNT_SK r
from
PT_EVNT_IN_DIV eid,
PT_ENTRD_EVNT ee,
PT_EVNT e
where ee.PGNT_SK = :PGNT_SK
and ee.CNTSNT_SK = :CNTSNT_SK
and ee.EVNT_IN_DIV_SK = eid.EVNT_IN_DIV_SK
and eid.EVNT_SK = e.EVNT_SK
and ee.ENTRD_EVNT_SK not in
(select js.ENTRD_EVNT_SK
from PT_JDG_SCR js
where js.JDG_SK = :JDG_SK
and js.PGNT_SK = :ai_pgnt_sk
and js.CNTSNT_SK = :CNTSNT_SK)
order by 1
The query works fine in SQL Developer, but Apex gives the following error when compiling it in the LOV editor.
"1 error has occurred
- LOV query is invalid, a display and a return value are needed, the column names need to be different. If your query contains an in-line query, the first FROM clause in the SQL statement must not belong to the in-line query."
I tried rearranging the entries in the From clause, but that didn't do any good.
Do you see what I can do to make Apex accept it?
Thanks,
KimKim
Kim2012 wrote:
select
e.DESCR d,
ee.ENTRD_EVNT_SK r
from
PT_EVNT_IN_DIV eid,
PT_ENTRD_EVNT ee,
PT_EVNT e
where ee.PGNT_SK = :PGNT_SK
and ee.CNTSNT_SK = :CNTSNT_SK
and ee.EVNT_IN_DIV_SK = eid.EVNT_IN_DIV_SK
and eid.EVNT_SK = e.EVNT_SK
and ee.ENTRD_EVNT_SK not in
(select js.ENTRD_EVNT_SK
from PT_JDG_SCR js
where js.JDG_SK = :JDG_SK
and js.PGNT_SK = :ai_pgnt_sk
and js.CNTSNT_SK = :CNTSNT_SK)
order by 1
The column named ENTRD_EVNT_SK is used twice in a select. Once in the main select and once in the inline query.
The validation maybe choking on that.
Try giving the column in the inline query an alias and see if that helps.
Nicolette -
Query works in SQL Developer but not in Oracle APEX
The query below runs and produces the correct result in SQL Developer, but when I try to put it into a PL/SQL process in Apex I get the error shown. There is no semi-colon at the end of the query in APEX.
The error is:
ORA-06550: line 10, column 54: PL/SQL: ORA-00933: SQL command not properly ended ORA-06550: line 2, column 1: PL/SQL: SQL Statement ignored ORA-06550: line 11, column 21: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: ( begin case declare end exception exit for goto if loop mod null pragma raise return select update while with.
The query is:
SELECT *
FROM
(SELECT *
from T3_LEADS
WHERE
(SYSDATE - Last_Mailed_Date) > 60 OR Last_Mailed_Date is null
WHERE MARKET_ID = 'Salt_Lake_City' AND rownum <= 100That is because when you run a SQL in SQL*Plus or SQLDeveloper the output is displayed on the screen, but in Apex you need to select those values into variables so you can do something with the data.
delcare
v_emp_id employee.emp_id%type;
begin
select emp_id
into v_emp_id
from employee
where lname = 'JOHNSON' and fname = 'BILLY';
-- Then do something with that data
if v_emp_id between 1 and 10 then
end if;
end;Probably a bad SQL for an example. For your SQL though, you are selecting * which you would be able to select into a rowtype variable, but you are probably going to start having problems like "Exact fetch returns more that one row" since your query will probably return more that one value. In those cases you want to use cursors, and loop through the data one record at a time. You can Google all of that. -
Can we keep APEX open? Query works in SQL Developer but not Oracle APEX
Hi Sirini,
Just my thoughts -- but if one of these is closed, I think it should be the other one {thread:id=2496751} where he's getting the run-around. This one {thread:id=2496754} (APEX!) should be the one kept open. Don't you think?
My 2 cents,
Howard..where he's getting the run-around...What runaround? The posters there determined that he needed a semi-colon at the end of the statement and then that he had forgotten the INTO clause. Both are beginner errors. OP has closed the thread as answered and has gone 'off to Google' to learn more about creating SQL queries in PL/SQL. This seems resolved -- at least until he comes back from his Googlequest with another question.
-
Query works on Oracle 9i, but fails on Oracle 10g - puzzling...
In porting an application from Oracle 9i to Oracle 10g, I hit a problem that for a while I assumed was some bug of mine. But I eventually isolated the problem and can reproduce this using a single sql script and then a single delete. The amazing thing is that it works fine on Oracle 9i (always) and fails on Oracle 10g (always).
Have I found a bug? (I would be pretty amazed).
Here's the situation. I have four tables and a trigger set on one of those tables.
The tables are configured so that there is the "parent" table (A). Table B has a foreign key dependency on A's primary key, with "on delete cascade". Table B also has a trigger that runs on the delete. Table C (which has no data) has an integrity constraint on A's primary key. Table D holds information used by the trigger to determine if/when table C should be dropped. (I have a script that sets all this up).
After setting up the tables and the few data records needed, I delete a record from Table A. This causes the records in Table B to be deleted. That fires the trigger, which determines that Table C can be dropped, so the trigger drops Table C. Then, Oracle decides it still needs to check the integrity constraint on Table C (after all, C depended on A and we have deleted a record in A). Oracle then issues a query against table C, but of course table C has already been dropped and an error results.
The exact same script followed by the delete works fine on Oracle 9i. Is this a bug or is this a documented change in behavior? Any known workarounds? Unfortunately, the application needs all the integrity constraints that are present in the schema and also runs on SQL Server, so modifications in the integrity constraints are probably not what I am seeking).
Thanks so much!
RBI wasn't sure how to post the script, but it is short enough to include below. Many thanks for the quick response.
To connect the script below to my original post, the names are:
Table A = OT_AW_PROCESSDEF
Table B = OT_AW_PROCESS_APPDATADEF
Table C = OT_AW_AD_OneLoop_1
Table D = OT_AW_APPDATA_TABLEINFO
The trigger is also included in the script. After running this script, the command:
delete from OT_AW_ProcessDef where processdefId = 101
will cause the failure on Oracle10g, but succeeds on Oracle 9i.
Thanks again!
RB
/* *********************** CLEAN UP ********************************** */
/* Order the dropping of objects in reverse of creation */
DROP TABLE OT_AW_AD_OneLoop_1 CASCADE CONSTRAINTS
DROP TABLE OT_AW_PROCESS_APPDATADEF CASCADE CONSTRAINTS
DROP TABLE OT_AW_APPDATA_TABLEINFO CASCADE CONSTRAINTS
DROP TABLE OT_AW_PROCESSDEF CASCADE CONSTRAINTS
/* ******************* DATA TABLES *********************************** */
/* OT_AW_PROCESSDEF(Process Definition) Table */
/* ********** NOTE: OT_AW_PROCESSDEF and AW_PROCESS TABLES SHOULD ALWAYS HAVE THE SAME SET OF COLUMNS ********* */
create table OT_AW_PROCESSDEF (
processDefId NUMBER /* Id for the process definition */
, processDefName NVARCHAR2(255) /* Name of the process definition */
, CONSTRAINT OT_AW_PROCESSDEF_PK PRIMARY KEY(processDefId)
insert into OT_AW_PROCESSDEF (
processDefId, processDefName
values (
1, 'ADHOC'
/* OT_AW_APPDATA_TABLEINFO(List of all application Data tables in the system) Table */
create table OT_AW_APPDATA_TABLEINFO (
namespace VARCHAR2(65) NOT NULL, /* name of the namespace to which it belongs */
tableName VARCHAR2(128) , /* Name of the appdata table */
adLevel NUMBER(38) NOT NULL /* Appdata table level: 0=>PROCESS, 1=>CONVERSATION */
, CONSTRAINT OT_AW_APPDATA_TABLEINFO_PK PRIMARY KEY ( tableName )
, CONSTRAINT OT_AW_APPDATA_TABLEINFO_UNQ UNIQUE( namespace, tableName, adLevel )
/* OT_AW_PROCESS_APPDATADEF(Process level application data definition) Table */
create table OT_AW_PROCESS_APPDATADEF (
processDefId NUMBER NOT NULL /* Id for the process definition */
, name VARCHAR2(65) NOT NULL /* Name of the application data field, This name may be pointing to a shared namespace field */
, tableName VARCHAR2(128) /* Name of the table that holds the value for the field, may be same as local namespace table name */
, namespace VARCHAR2(65) NOT NULL /* Name of the namespace to which this field belongs */
, mappedNamespace VARCHAR2(65) null /* Name of the shared namespace to which this field is mapped, if there is any mapping */
, CONSTRAINT OT_AW_PROCESS_APPDATADEF_PK PRIMARY KEY (namespace, processDefId, name)
, CONSTRAINT OT_AW_PROCESS_APPDATADEF_FK FOREIGN KEY (processDefId) REFERENCES OT_AW_PROCESSDEF(processDefId) on delete cascade
CREATE TABLE OT_AW_AD_OneLoop_1(processDefId number , processId number ,FromRole number null, ToRole number null, Anyone number null,
CONSTRAINT OT_AW_AD_OneLoop_1_FK1 FOREIGN KEY (processDefId) REFERENCES OT_AW_PROCESSDEF(processDefId) )
/* TRIGGERS */
CREATE OR REPLACE TRIGGER OT_AW_PROCESS_APPDATADEF_DEL
AFTER DELETE ON OT_AW_PROCESS_APPDATADEF
FOR EACH ROW
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
tableName_var OT_AW_PROCESS_APPDATADEF.tableName%TYPE;
tempStr_var varchar2(128) :=null;
deletedId OT_AW_PROCESS_APPDATADEF.processDefId%TYPE;
deletedMNsp OT_AW_PROCESS_APPDATADEF.mappedNamespace%TYPE;
numReferences number :=-1;
tableExists number :=0;
CURSOR ADPTable_cursor
IS
SELECT apa.tableName, apa.processDefId, apa.mappedNamespace
FROM OT_AW_PROCESS_APPDATADEF apa
WHERE apa.tableName = :old.tableName
AND apa.processDefId = :old.processDefId;
BEGIN
dbms_output.put_line('Starting TRIGGER OT_AW_PROCESS_APPDATADEF_DEL');
OPEN ADPTable_cursor;
LOOP
FETCH ADPTable_cursor
INTO tableName_var, deletedId, deletedMNsp;
EXIT WHEN ADPTable_cursor%NOTFOUND;
BEGIN
IF (deletedMNsp IS NULL) THEN
BEGIN
select count(*) into numReferences from OT_AW_PROCESS_APPDATADEF where tableName = tableName_var
and processDefId <> deletedId;
IF ( numReferences = 0 ) THEN
BEGIN
SELECT count(*) INTO tableExists FROM OT_AW_APPDATA_TABLEINFO where
tableName=tableName_var;
IF (tableExists > 0) THEN
BEGIN
--dbms_output.put_line('About to alter first table');
-- EXECUTE IMMEDIATE 'ALTER TABLE ' || tableName_var || ' DROP CONSTRAINT ' || tableName_var ||'_FK1';
--dbms_output.put_line('About to alter second table');
-- EXECUTE IMMEDIATE 'ALTER TABLE ' || tableName_var || ' DROP CONSTRAINT ' || tableName_var ||'_FK2';
dbms_output.put_line('About to drop table named: ' || tableName_var);
tempStr_var := 'DROP TABLE ' || tableName_var;
EXECUTE IMMEDIATE tempStr_var;
dbms_output.put_line(tempStr_var);
dbms_output.put_line('Table dropped');
--dbms_output.put_line('Not dropping table now');
END;
END IF;
delete from OT_AW_APPDATA_TABLEINFO where
tableName=tableName_var;
dbms_output.put_line('OT_AW_APPDATA_TABLEINFO updated');
END;
END IF;
END;
END IF;
END;
END LOOP;
dbms_output.put_line('Loop ended');
CLOSE ADPTable_cursor;
dbms_output.put_line('Cursor closed');
COMMIT WORK;
dbms_output.put_line('Work committed');
dbms_output.put_line('Ending TRIGGER OT_AW_PROCESS_APPDATADEF_DEL');
END;
show errors;
/* Set up data to simulate the creation of OT_AW_AD_OneLoop_1 */
insert into OT_AW_PROCESSDEF (
processDefId, processDefName
values (
101, 'OneLoop'
insert into OT_AW_PROCESS_APPDATADEF (
processDefId, name, tableName, namespace
values (
101, 'FromRole', 'OT_AW_AD_OneLoop_1', 'OneLoop'
insert into OT_AW_PROCESS_APPDATADEF (
processDefId, name, tableName, namespace
values (
101, 'ToRole', 'OT_AW_AD_OneLoop_1', 'OneLoop'
insert into OT_AW_APPDATA_TABLEINFO (
namespace, tablename, adlevel
values (
'OneLoop', 'OT_AW_AD_OneLoop_1', 0
/ -
Query works as two queries, but not as one
I am beating my head against the wall trying to figure out why a query will not return, yet when I break it up into two queries, they both return successfully.
There is a text index on the text_a field.
This is my query:
select distinct /*+ */ table_c.rec_id
from table_d, table_n, table_c
where ( ((create_date >='2006-03-16T00:00:00Z')
and (misc_field='abcd')
and (contains( text_a,'ABC or DEF or GHI or JKL or MNP') > 0 ))
/* and (rownum <=2000) */)
and table_c.rec_id = table_d.rec_id
and table_c.create_date = table_d.create_date
and table_c.rec_id = table_n.rec_id
and table_c.create_date = table_n.create_date
This query will not return data. I get an ora-1555 every time I let it run. The longest I let it run before getting the 1555 error was 1 hr and 50 min.
Tests suspecting a text data problem:
Now, here's what's puzzling. The query will run if 'JKL' is taken out. So, I thought this value may be the problem, so I ran the query with just the 'JKL' value in the "contains" clause and it did not return a value.
Tests suspecting a date problem:
Now, even more strange: When I ran the query (with all 5 conditions for misc_field) and looked from 2006-03-17T00:00:00Z, it returned records in less than 5 minutes. Then I queries just the 16th (create_date>='2006-03-16T00:00:00Z' and create_date < '2006-03-17T00:00:00Z' and it returned rows in less than 1 minute. So, I looked at the tokens for those dates, and there are values for all of them for each of the dates from the 16th to the present (the 21st). However, when I put them together in the query above, the query just seems to hang.
The total number of rows that should be returned is around 650 (adding the two results that worked).
Any suggestions? The indexes are valid, syncing is up-to-date, optimizing has no errors,a nd there are token_counts for the tokens in the $I table for the text_a field.
This problem has crossed into a second day and the same value of the 16th (as in the query above) is still used and still does not return rows. What else should I be looking at?
In advance, thanks for any suggestions/assistance.
- JennyI believe the 1555 error is an obscure response to (i.e. a result of) another problem.
The create_date column is a date datatype. The NLS format matches at the session, instance and database level (nls_session_parameters, and instance, and database). The NLS_DATE_FORMAT is set to YYYY-MM-DD"T"HH24:MI:SS"Z" in each of those views. Would this still cause a potential problem?
I neglected to say that we are on version 9.2.0.7 (both the data dictionary and the binaries).
The response from raford suggests that the optimizer is causing the text index to be called in "functional lookup" mode. I tried testing it, forcing it to use an index. The query ran in 3.5 minutes. Then I tested the original query and received the same results. After checking with the other DBAs, one of them was updating statistics on partitions for previous days' data. The statistics were only being run on current data partitions for the current day, but apparently the method that the application uses to "update" data (which could be for previous days) is to delete it and then insert it. I am suspecting that this is the root cause of all our evil! We are currently working with the developers to get this design changed. In the meantime, I REALLY appreciate all the help/suggestions. If we see the problem occur again, we will add the hint to test and verify whether or not that is the cause. I suspect it will be. Thank you raford.
Darn that optimizer!!!! ;-)
Oh, just a hint: Using set autotrace traceonly explain will NOT show that each of the text index partitions is being scanned. This was what we were using for our explain plans. But, when another query, with a similar problem, was finally run, we used EM and the "Long Ops" tab to finally see that each partition was being scanned for the token, whether it needed it or not. I think I'll go back to Tom Kyte's website and look for that article on the set autotrace traceonly explain not giving a totally accurate explain plan.
Thanks again.
- Jenny -
Form auto query works in 10g developer, but not when served by forms server
I have a form with a master and two detail blocks on the same canvas. When I run it from the developer tool on my desktop, it works great, the master block populates as expected based on the GO_BLOCK and EXECUTE_QUERY statements, and the detail blocks both populate automatically, firing their POST_QUERY triggers as well. When I run it on the server, I have to execute query manually, and then navigate to each of the detail blocks and then execute their queries manually too. When I do that, their POST_QUERY triggers are not firing.
Desktop is (Windows XP Professional version 5.1 build 2600.xpsp_sp3_gdr.100427-1636 : Service Pack 3)
Developer version is Forms [32 Bit] Version 10.1.2.0.2 (Production)
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Oracle Toolkit Version 10.1.2.0.2 (Production)
PL/SQL Version 10.1.0.4.2 (Production)
Oracle Procedure Builder V10.1.2.0.2 - Production
PL/SQL Editor (c) WinMain Software (www.winmain.com), v1.0 (Production)
Oracle Query Builder 10.1.2.0.2 - Production
Oracle Virtual Graphics System Version 10.1.2.0.2 (Production)
Oracle Tools GUI Utilities Version 10.1.2.0.2 (Production)
Oracle Multimedia Version 10.1.2.0.2 (Production)
Oracle Tools Integration Version 10.1.2.0.2 (Production)
Oracle Tools Common Area Version 10.1.2.0.2
Oracle CORE 10.1.0.4.0 Production
Server version is OAS forms/reports install – 10.1.2.3
OS – x86-64bit (Red Hat Enterprise Linux Server release 5.4)hello,
does oracle showing any errors in user_scheduler_job_run_details for this job ? I would advise try inserting some debug statement to identify where exactly its stuck. Also please check sample configurations syntax for user_scheduler_jobs.
Cheers
Sush -
SQL Query works in SQL Developer, but not always in MII
Hi all,
I encountered a strange behaviour with a query in MII 12.0.2. Maybe someone has a guess what happens.
I have created a SQL query which runs against Oracle 10g tables. I have tested the query using SQL Developer, and it throws a couple of lines, depending on the contents of the where clause.
Next I have copied the query to a MII SQL Query (FixedQuery). However, the output is empty most of the time, without showing any errors. After some testing I got the impression that older data are not displayed, but there is no time or date setting in MII.
As the SQL Developer always returns rows, I am unsure where to search for the error.
Regards
MichaelMichael,
I would imagine that you have sub-select statements in your FixedQuery, all which will fall subject to the RowCount property of the query template (SQL defaults to 100), which is issued through the driver and typically honored by the database when returning the data from your request.
Most of the native database query tools allow you to make unbound query requests with no limit on rows, which would probably account for the difference between SQL Developer and the query template.
For SQLServer it's ROWCOUNT: http://msdn.microsoft.com/en-us/library/ms188774.aspx
For Oracle it's ROWNUM: http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.html
So the answer would be not to make the query template row count some rediculous number, but more appropriately refine the way that the database request is issued.
Regards,
Jeremy -
IP - Issues with Input Query: Works on Bex analyzer but not on Web
I am doing the following:
Created a Aggregation level for a multi provider which has only real time infoproviders associated with it
Created the query using Bex Query Designer availing all the options for planning
When I execute this query it executes using a web template and does not open up the Key Figure cells for input, I had tried using the Web Application designer with Save button but still the same issue
I tried the same on Bex analyzer and it works fine
Please help to resolve the above issue.
Thanks in advance.Hi Ram,
Cells should be input enabled on the web just running the query. No need to create a Webtemplate, altough you need to have the webtemplate to be able to use the "save data" function.
Maybe your query is not input ready at all, and you're misinterpreting analyzer layout.
To test this, please enter some plan data in analyzer, right click and choose "save".
Please check if data is written to the real time infoprovider.
Hope this helps you.
Regards,
Miguel P. -
SQL Query works in Simulator VC but not in flash deploy
Hi:
This is the select that works in VC's simulator:
SELECT
"t1"."VUELO", "t1"."HORA SALIDA", "t1"."DURACION", "t1"."ORIGEN", "t1"."DESTINO", "t1"."DIAS"
FROM
"RPADMIN"."VUELOS_SEMANAL_EPN_VIRGO" "t1"
WHERE
"t1"."DIAS" LIKE <b>'%1%'</b>
ORDER BY "t1"."HORA SALIDA" ASC
The big problem seems to be the LIKE clause, I need to find all records that have the number one.
If I select the Simulator tab the data is bring on but If I perform a flash deploy a null message is display at app's execution. The system is well define and If I change the LIKE clause for LIKE <b>'1'</b> the flash app brings data (not all the records that contains the number 1).
Thanks a lot for the time on this thread.
RLSThanks Prakash Darj.
I read that PDF before starting the thread but I can't make it work...I read it once again and no luck...
My app is a basic one: start point with a link to a SQL statement linked to a result table
<b>The SQL sentences that work at the simulator don't work for a flex app, Did you know the reason?</b>
Often I get this error when deploying as flash app:
Error in executing a process for Flex compilation, Error 1103: There is no property with the name 'NEUQUEN'.
(D:\usr\sap\PD0\JC00\j2ee\cluster\server0\GUIMachine_Business_Packages\ModelName_20931\FLEX_COMPILATION_FOLEDR\AAD1W1.mxml:205)
Failed to compile AAD1W1.mxml
Is it that my VC is not working fine?
I want to know the reason for what the Simulator display the data and not the flex app...is the same app....
any Idea?
Thanks so much for the time on this thread and for your answer.
RLS
Maybe you are looking for
-
DW8: image won't display in Design View
Folks: DW8 on MacOS 10.4.8 (fully updated) on Intel iMac. What would keep an image from displaying in DW Design View? What are the causes of the grey box with the superimposed "X"? Is there any diagnostic output that might help? Is the grey box and "
-
Call R/3 BADI from CRM without XI
Hello Experts, I have to implement some BADIs in R/3 which will get executed through CRM. What are the various options of calling the BADI in R/3 from CRM? The BADIs are used for sales order processing, invoicing, etc.... Thanks Ricky
-
Installed 8.1.5 EE on Redhat 6.1. When I attempt to make the demos in $ORACLE_HOME/rdbms/demo, I get an error that libskgxpd.a cannot be built. Its not in $ORACLE_HOMOE/rdbms/lib, where it should be. Anyone seen/solved this? Thanks!
-
I'm wondering if I run an iostat and see results below if this may be a problem. I'm asking this because I'm not 100% sure my storage admin is telling me the truth. Whenever I do iostat on this database server running Solaris 9 running 4 9.2.0.6 data
-
Missing word database in my Dictionary
I have a Nokia 6121 classic. Recently my memory card was corrupted, so I had to reformat the memory card. After reformatting the memory card, the application Dictionary coudn't work. It stated: "Dictionary word information missing. Install word datab