ORA-00900: invalid SQL statement error in procedure
In procedure we referring only 2 tables
Tables:
1) Edw_orders_ref
2) Change_pl
Condisition:
1) whenever edw_orders_ref.product=change_pl.product and edw_orders_ref.opt=change_pl.opt condisition satisfied then update edw_orders_ref.pl with change_pl.pl column.
2) we pass table name and day values as arguments to the procedure.
3) Based on day column data only we update.
4) Heir day column means partisition values of the table
Procedure is:
create or replace procedure Proc_update_target(P_Day varchar2,p_tablename nvarchar2)
as
TYPE PlCurTyp IS REF CURSOR;
Pl_cv PlCurTyp;
--emp_rec edw_orders_ref%ROWTYPE;
pl_rec Edw_orders_ref.pl%type;
product_rec Edw_orders_ref.product%type;
opt_rec Edw_orders_ref.opt%type;
sql_stmt varchar(3200);
n number:=0;
BEGIN
sql_stmt := 'select lpl.opt,lpl.product,lpl.pl from minddba.change_pl lpl
where exists ( select 1 from '|| p_tablename ||' where '||p_tablename||'.product=lpl.product and '||p_tablename||'.opt=lpl.opt
and '||p_tablename||'.day='||P_Day||' )';
dbms_output.put_line('hi');
OPEN pl_cv FOR sql_stmt ;
LOOP
dbms_output.put_line('hello1');
FETCH Pl_cv INTO pl_rec,product_rec,opt_rec;
EXIT WHEN Pl_cv%NOTFOUND;
dbms_output.put_line('hello');
execute immediate
'update '||p_tablename||' set pl=:rpl
where product=:rproduct
and opt=:ropt
AND day=:day' using pl_rec, product_rec,opt_rec,P_Day;
if Pl_cv%rowcount=10000 then
commit;
end if;
END LOOP;
CLOSE pl_cv;
commit;
exception
when others then
dbms_output.put_line('Error while updating target pl:'||SQLERRM);
end;
it is compile nad debug.
but execution time this error was coming
exec Proc_update_target('20110226','edw_orders_ref')
hi
hello1
hello
Error while updating target pl:ORA-00900: invalid SQL statement
i think in that procedure updata statement is wrong,if any one corect them.
Hi,
This are details of table structure and my requirement for that procedure
CREATE TABLE EDW_ORDERS_REF
SO_ID VARCHAR2(20 BYTE) NOT NULL,
SRC_SYS_KY NUMBER(19) NOT NULL,
DAY VARCHAR2(8 BYTE) NOT NULL,
FIN_CLOSE_DT VARCHAR2(8 BYTE) NOT NULL,
SO_LN_ITM_ID VARCHAR2(12 BYTE) NOT NULL,
EXT_EFF_TS VARCHAR2(26 BYTE) NOT NULL,
EFF_FRM_GMT_TS VARCHAR2(26 BYTE) NOT NULL,
CONTRA_FG VARCHAR2(1 BYTE) NOT NULL,
FDW_TRAN_TYPE_CD VARCHAR2(1 BYTE) NOT NULL,
SO4 VARCHAR2(4 BYTE),
SO2 VARCHAR2(2 BYTE),
PUR_AGMT VARCHAR2(20 BYTE),
SF VARCHAR2(6 BYTE),
V_BOX VARCHAR2(18 BYTE),
PL VARCHAR2(30 BYTE),
MCC_CD VARCHAR2(20 BYTE),
OPT VARCHAR2(18 BYTE),
ORDER_UNITS NUMBER(15,3),
SO_OPT_QTY NUMBER(10,3),
SO_DTL_EXT_QT NUMBER(15,3),
ORDER_LIST_LCY NUMBER(18,4),
ORDER_NET_LCY NUMBER(18,4),
ORDER_NET_CLC NUMBER(18,4),
ORDER_LIST_CLC NUMBER(18,4),
CURRENCY_CD VARCHAR2(2 BYTE),
SLS_CHNL_CD VARCHAR2(1 BYTE),
CBN VARCHAR2(20 BYTE),
GEOG_UNIT VARCHAR2(30 BYTE),
PRODUCT VARCHAR2(18 BYTE),
ORDER_NR VARCHAR2(20 BYTE),
ORDER_LINE_NR VARCHAR2(12 BYTE),
LOAD_DT DATE DEFAULT SYSDATE
CREATE TABLE MINDDBA.CHANGE_PL
PRODUCT VARCHAR2(18 BYTE) NOT NULL,
OPT VARCHAR2(3 BYTE) NOT NULL,
PL VARCHAR2(2 BYTE) NOT NULL
1) whenever edw_orders_ref.product=change_pl.product and edw_orders_ref.opt=change_pl.opt condisition satisfied then update edw_orders_ref.pl with change_pl.pl column.
2) we pass table name and day values as arguments to the procedure.
3) Based on day column data only we update.
4) Heir day column means partisition values of the table
When executing this one I got one error like
exec Proc_update_target('20110226','edw_orders_ref');
hi
hello1
hello
ORA-00900: invalid SQL statement
Similar Messages
-
ORA-00900: invalid SQL statement Error while Executing Procedure
Hi:
I am trying to execute following procedure through java code, but i am getting ORA-00900: invalid SQL statement error.
Procedure is :
<code>
(vResult out int)
as
vCardId varchar2(16);
vForacid varchar2(16);
vApp_Entry_No varchar2(10);
vSrNo number(6);
vCardStatus char(1);
vCardStat char(2);
vExpiryDate date;
Cursor cardCur1 is
select u.card_number,trim(u.ACCOUNT_NUMBER),u.CARD_STATUS,to_char(u.EXPIRY_DATE,'dd-MM-yyyy')
FROM DailyCardData u
where default_indicator='1'
and isprocessed = 'N'
order by expiry_date;
begin
vSrNo := 0;
vResult := 0;
open cardCur1;
Loop
fetch cardCur1 into vCardId,vForacid,vCardStat,vExpiryDate;
if cardCur1%NOTFOUND then
exit;
end if;
if (vCardStat != null) then
vCardStatus := 'H';
elsif (vExpiryDate <= sysdate) then
vCardStatus := 'E';
else
vCardStatus := null;
end if;
select a.app_entry_no into vApp_Entry_No from Application a,ApplicationLinkedAccounts l
where l.foracid = vForacid and l.AcSrNo = '1'
and a.app_entry_no = l.app_entry_no
and a.cardid is null
and a.DOWNLOADFILECREATIONFLAG = 'Y';
update Application set CardId = vCardId,
Card_Status = vCardStatus,APPLICATIONPROCESSEDFLAG = 'Y',
APPLICATIONPROCESSEDdate = DOWNLOADFILECREATIONdate
where App_Entry_No = vApp_Entry_No;
commit;
update DailyCardData set isprocessed = 'Y',app_entry_no = vApp_Entry_No
where card_number = vCardId;
commit;
end Loop;
close cardCur1;
vResult := 1;
end;
</code>
Can any body help me in that?
Thank You,
AnupFirst of all I don't see a procedure header.
Secondly I see you commit inside your procedure. This is a bug.
Thirdly I see you also commit inside a loop. This is also a bug, and needs to be removed asap.
The error indicates a statement doesn't parse. As you don't post the error stack, nor a table definition no one can reproduce the problem.
You need to isolate the statements, one by one, and run them through sql*plus to see what happens.
Sybrand Bakker
Senior Oracle DBA -
I am getting "ORA-00900: invalid SQL statement" error.?
I did installed oracle 11gR2. and used "DBMS_METADATA_DIFF.COMPARE_ALTER('TABLE','TBL_A','TBL_A','USER1','USER2')" to see the result like below, but I am getting "ORA-00900: invalid SQL statement" error. Any idea?
I am using:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> desc user1.tbl_a
Name Null? Type
FIELD_A1 NOT NULL NUMBER
FIELD_A2 VARCHAR2(20)
FIELD_A4 NOT NULL NUMBER(5,2)
FIELD_A5 VARCHAR2(10)
FIELD_A6 NOT NULL NUMBER(2)
SQL> desc user2.tbl_a
Name Null? Type
FIELD_A1 NOT NULL NUMBER
FIELD_A2 VARCHAR2(50)
FIELD_A3 DATE
FIELD_A4 NUMBER(5,2)
FIELD_A5 NOT NULL VARCHAR2(10)
SQL> select dbms_metadata_diff.compare_alter('TABLE','TBL_A','TBL_A','USER1','USER2') from dual
expected result:
DBMS_METADATA_DIFF.COMPARE_ALTER('TABLE','TBL_A','TBL_A','U1','U2')
ALTER TABLE "U1"."TBL_A" ADD ("FIELD_A3" DATE)
ALTER TABLE "U1"."TBL_A" DROP ("FIELD_A6")
ALTER TABLE "U1"."TBL_A" MODIFY ("FIELD_A2" VARCHAR2(50))
ALTER TABLE "U1"."TBL_A" MODIFY ("FIELD_A4" NUMBER(5,2) DEFAULT 0)
ALTER TABLE "U1"."TBL_A" MODIFY ("FIELD_A4" NULL)
ALTER TABLE "U1"."TBL_A" MODIFY ("FIELD_A5" NOT NULL ENABLE)Thanks for reply rp,
I got result using "select dbms_metadata_diff.compare_alter('TABLE','TBL_A','TBL_A','USER1','USER2') from dual" -
ORA-00900: invalid SQL statement error while running jobs in APEX 4.2
Hi,
the following procedure compiled successfully in Apex 4.2:
create or replace procedure "DEVLOE" AS
L_TEMPLATE VARCHAR2(32000);
L_base_TEMPLATE VARCHAR2(32000);
begin
l_base_template := '<html>
<head>
<title>HTML Editor Sample Page</title>
</head>
<body>
<p>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;"><span class="plsql-literal" style="line-height: 14.65625px; white-space: nowrap;">Hi #Contact#,</span></span></span></p>
<p>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;"><span class="plsql-literal" style="line-height: 14.65625px; white-space: nowrap;">This is a notification message to inform you that <strong>Development </strong>effort </span><span class="plsql-literal" style="line-height: 14.65625px; white-space: nowrap;">and milestones are yet to be updated for ECR: </span><span class="plsql-operator" style="line-height: 14.65625px; white-space: nowrap;"></span><span class="plsql-word" style="line-height: 14.65625px; white-space: nowrap;">#ECR_NAME#. This ECR has priority #p#. </span></span></span></p>
<table align="center" border="1" cellpadding="1" cellspacing="1" style="width: 500px;">
<tbody>
<tr>
<td>
<span style="font-size:14px;"><span style="color: rgb(255, 0, 0);"><span style="font-family: verdana, geneva, sans-serif;"><u><strong>Department</strong></u></span></span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;"><span style="color: rgb(255, 0, 0);"><u><strong><span style="background-color: rgb(255, 255, 255);">Contact Name</span></strong></u></span></span></span></td>
</tr>
<tr>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">Product Management Contact</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#pdm#</span></span></td>
</tr>
<tr>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">PMO Contact</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#PMO#</span></span></td>
</tr>
<tr>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">Dev Contact</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#Dev#</span></span></td>
</tr>
<tr>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">QA Contact</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#QA#</span></span></td>
</tr>
<tr>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">Infodev Contact</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#Info#</span></span></td>
</tr>
</tbody>
</table>
<p>
</p>
<span fckbookmark="1" style="display: none;"> </span><span fckbookmark="1" style="display: none;"> </span>
<table align="center" border="1" cellpadding="1" cellspacing="1" style="width: 500px;">
<tbody>
<tr>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;"><span style="color: rgb(0, 0, 255);">Team</span></span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;"><span style="color: rgb(0, 0, 255);">Start Date</span></span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;"><span style="color: rgb(0, 0, 255);">End Date</span></span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;"><span style="color: rgb(0, 0, 255);">Effort(in person days)</span></span></span></td>
</tr>
<tr>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">Development</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#d1#</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#e1#</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#L1#</span></span></td>
</tr>
<tr>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">Quality Assurance</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#d2#</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#e2#</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#L2#</span></span></td>
</tr>
<tr>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">Information Development</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#d3#</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#e3#</span></span></td>
<td>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">#L3#</span></span></td>
</tr>
</tbody>
</table>
<p>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">The ECR application is located</span> at </span>: https://apex.oraclecorp.com/pls/apex/f?p=1472:1<span fckbookmark="1" style="display: none;"> </span></p>
<span fckbookmark="1" style="display: none;"> </span>
<p>
<span style="font-family: verdana, geneva, sans-serif; font-size: 14px;">Regards,</span></p>
<p>
</p>
<p>
<span style="font-size:14px;"><span style="font-family: verdana, geneva, sans-serif;">ECR Team</span></span></p>
</body>
</html>
FOR c1 IN (select ECR_NAME,PMO_CONTACT, QE_LOE,INFODEV_LOE, DEV_START_DATE, DEV_END_DATE, QE_CONTACT,QE_START_DATE,INFODEV_START_DATE,INFODEV_END_DATE, QE_END_DATE, INFODEV_CONTACT, PDM_CONTACT, DEV_LOE,ECR_PRIORITY, DEV_CONTACT from ECR_NAME WHERE DEV_LOE IS NULL AND ECR_STATUS = 'Effort Estimation is in Progress' AND ECR_PRIORITY <=5)
LOOP
l_template := l_base_template;
l_template:= replace(l_template, '#Contact#', c1.DEV_CONTACT);
l_template:= replace(l_template, '#ECR_NAME#', c1.ECR_NAME);
l_template:= replace(l_template, '#p#', c1.ECR_PRIORITY);
l_template:= replace(l_template, '#PMO#', c1.PMO_CONTACT);
l_template:= replace(l_template, '#pdm#', c1.PDM_CONTACT);
l_template:= replace(l_template, '#Dev#', c1.DEV_CONTACT);
l_template:= replace(l_template, '#QA#', c1.QE_CONTACT);
l_template:= replace(l_template, '#Info#', c1.INFODEV_CONTACT);
l_template:= replace(l_template, '#d1#', c1.DEV_START_DATE);
l_template:= replace(l_template, '#L1#', c1.DEV_LOE);
l_template:= replace(l_template, '#e1#', c1.DEV_END_DATE);
l_template:= replace(l_template, '#d2#', c1.QE_START_DATE);
l_template:= replace(l_template, '#L2#', c1.QE_LOE);
l_template:= replace(l_template, '#e2#', c1.QE_END_DATE);
l_template:= replace(l_template, '#d3#', c1.INFODEV_START_DATE);
l_template:= replace(l_template, '#L3#', c1.INFODEV_LOE);
l_template:= replace(l_template, '#e3#', c1.INFODEV_END_DATE);
htmldb_mail.Send(p_to => '[email protected]',
p_cc => '[email protected]',
p_from => '[email protected]',
p_body => l_template,
p_body_html => l_template,
p_subj => 'cxxxx:' ||c1.ECR_NAME );
END LOOP;
end;
the when I ran:
begin
devloe();
end;
I received the mail as well.
However, when I try to schedule this in the job:
declare
JobNo user_jobs.job%TYPE;
begin
dbms_job.submit(JobNo, 'BEGIN
DEVLOE();
END;', sysdate, 'sysdate + 1/24/60'); commit; end;
The job status shows failures every minute.
dbms_job.run(job_no);
It gave : ORA-00900: invalid SQL statementFirst of all I don't see a procedure header.
Secondly I see you commit inside your procedure. This is a bug.
Thirdly I see you also commit inside a loop. This is also a bug, and needs to be removed asap.
The error indicates a statement doesn't parse. As you don't post the error stack, nor a table definition no one can reproduce the problem.
You need to isolate the statements, one by one, and run them through sql*plus to see what happens.
Sybrand Bakker
Senior Oracle DBA -
Executing Stored Procedure from TOAD: ORA-00900: invalid SQL statement
Ok…I have ALL the stored procedures converted into Oracle…now, when I go to test them I am getting the vague error of:
ORA-00900: invalid SQL statement
I am attempting to execute:
--EXEC IEXGetAgentSysPerf(to_date('2008/09/01', 'yyyy/mm/dd/'), to_date('2008/09/11', 'yyyy/mm/dd'), 'US HelpDesk');
EXEC IEXGetAgentSysPerf('9/1/2008', '9/11/2008', 'US HelpDesk');
(Neither work). These are calling a Stored Procedure with the following header:
PROCEDURE IEXGetAgentSysPerf (
v_curparm_IEXGetAgentSysPerf IN OUT pkg_IEX.cur_IEXGetAgentSysPerf
,v_BDateTime DATE
,v_EDateTime DATE
,v_WorkGroup VARCHAR2
The IDE is “TOAD” for Oracle. Thanks in advance.Hi,
This is your procedure
PROCEDURE IEXGetAgentSysPerf (
v_curparm_IEXGetAgentSysPerf IN OUT pkg_IEX.cur_IEXGetAgentSysPerf
,v_BDateTime DATE
,v_EDateTime DATE
,v_WorkGroup VARCHAR2
you are providing the ,v_BDateTime DATE,v_EDateTime DATE and v_WorkGroup
and how about "v_curparm_IEXGetAgentSysPerf ". So that procedures is returning the error.
Adding the the earlier post, If you want to test the Stored Procedures... then I say you work on the PL/SQL
Developer which good for debugging (easy to use...) When compare to TOAD.. :-)
Test ..it there...
- Pavan Kumar N -
Sql error ORA-00900: invalid SQL statement
Hi All
I am new to sql and i try to solve this issue i have here.
where i run this query (1) i get this message : ORA-00900: invalid SQL statement
Query : 1
WITH t1
AS (SELECT CID ,
TYPE,
TO_CHAR (
TO_DATE ('00:00:00', 'HH24:MI:SS')
+ (lg_end_time - lg_start_time),
'HH24:MI:SS') call_time,
ROW_NUMBER ()
OVER (PARTITION BY CID ORDER BY CID NULLS FIRST)
AS call_id1
FROM test_1
SELECT SUM (call_time)
FROM t1;
output:
i get error: ORA-01722: invalid number
table structure:
select * form test_1;
CID TYPE LG_END_TIME LG_START_TIME
1508643 Dispatching 2012/12/03 14:05 2012/12/03 14:02
1508643 Treatment 2012/12/03 14:00 2012/12/03 14:00
1508643 Initiation 2012/12/03 14:00 2012/12/03 14:00
1508662 Dispatching 2012/12/03 14:18 2012/12/03 14:16
1508662 Initiation 2012/12/03 14:01 2012/12/03 14:01
1508662 Treatment 2012/12/03 14:02 2012/12/03 14:01
1508643 Dispatching 2012/12/03 14:02 2012/12/03 14:00
1508662 Dispatching 2012/12/03 14:16 2012/12/03 14:02
thanks for all your helpHi All
thanks for helping and giving your support. but the at this time question remains unanswered.
with t1
as (
SELECT CID ,
TYPE,
TO_CHAR (
TO_DATE ('00:00:00', 'HH24:MI:SS')
+ (lg_end_time - lg_start_time),
'HH24:MI:SS') call_time,
ROW_NUMBER ()
OVER (PARTITION BY CID ORDER BY CID NULLS FIRST)
AS call_id1
FROM test_1
select * from t1Output:
CID TYPE CALL_TIME CALL_ID1
1508643 Dispatching 0:02:06 1
1508643 Initiation 0:00:00 2
1508643 Treatment 0:00:39 3
1508643 Dispatching 0:02:50 4
1508662 Treatment 0:01:03 1
1508662 Initiation 0:00:00 2
1508662 Dispatching 0:13:17 3
1508662 Dispatching 0:02:43 4Desired results would be :
group by CID and total time (summed) by each CID
and it will also look like:
CID TYPE CALL_TIME CALL_ID1 total_time
1508643 Dispatching 0:02:06 1
1508643 Initiation 0:00:00 2
1508643 Treatment 0:00:39 3
1508643 Dispatching 0:02:50 4
0:05:35
1508662 Treatment 0:01:03 1
1508662 Initiation 0:00:00 2
1508662 Dispatching 0:13:17 3
1508662 Dispatching 0:02:43 4
0:17:03
Create table :
CREATE TABLE TEST_1
( CID NUMBER NOT NULL,
TYPE VARCHAR2(20 BYTE) NOT NULL,
LG_END_TIME DATE NOT NULL,
LG_START_TIME DATE NOT NULL
Insert statement:
insert into test_1 VALUES (1508643,Dispatching,03-DEC-12,03-DEC-12);
insert into test_1 VALUES (1508643,Treatment,03-DEC-12,03-DEC-12);
insert into test_1 VALUES (1508643,Initiation,03-DEC-12,03-DEC-12);
insert into test_1 VALUES (1508662,Dispatching,03-DEC-12,03-DEC-12);
insert into test_1 VALUES (1508662,Initiation,03-DEC-12,03-DEC-12);
insert into test_1 VALUES (1508662,Treatment,03-DEC-12,03-DEC-12);
insert into test_1 VALUES (1508643,Dispatching,03-DEC-12,03-DEC-12);
insert into test_1 VALUES (1508662,Dispatching,03-DEC-12,03-DEC-12);Edited by: 855161 on Jan 7, 2013 8:37 AM
Edited by: 855161 on Jan 7, 2013 9:15 AM
Edited by: 855161 on Jan 7, 2013 1:00 PM -
Trying to produce report but have ERROR ORA-00900: invalid SQL statement
Hi,
I am new to Oracle so have been experimenting with a few things to get the hang of it. I have been trying to produce a report, but keep getting the error: ORA-00900: invalid SQL statement.
This happens at my first line of code where I have COLUMN <column_name> HEADING <Heading_name>
So I am a bit confused - is there a command that I am supposed to issue that indicates to SQL*Plus that I am trying to create a report?
Also, if I just delete the COLUMN <column_name> HEADING <Heading_name> rows and just start at BREAK ON <column_name> SKIP 1, it produces the same error.
I am using Oracle 8.0.6 - does this make a difference?
Here is my code:
COLUMN a.p_ctryid HEADING 'Country'
COLUMN s.p_animid HEADING 'Stallion ID'
COLUMN s.p_uname HEADING 'Stallion Name'
COLUMN a.p_animid HEADING 'Horse ID'
COLUMN d.p_careertp HEADING 'Career'
BREAK ON s.p_animid SKIP 1
BREAK ON d.p_careertp SKIP 2
COMPUTE SUM LABEL 'Total' OF d.p_careertp ON REPORT
SELECT DISTINCT a.p_ctryid, s.p_animid, s.p_uname, a.p_animid, d.p_careertp
FROM p_owby.p_animal a, p_owby.p_animal s, p_owby.p_mating m, p_owby.p_anim_dtl d
WHERE m.p_mateyr = 2001
AND a.p_animid = d.p_animid
AND a.p_animid = m.p_animid
AND a.p_animid > 0
AND s.p_animid = a.p_sire
AND a.p_ctryid IN('GB','IRE')
GROUP BY a.p_ctryid, s.p_animid, s.p_uname, d.p_careertp, a.p_animid
ORDER BY a.p_ctryid, s.p_animid, d.p_careertp
Any help would be greatly appreciated!
Thanks in advance!You are trying to do COMPUTE SUM ... ON REPORT but there is no BREAK ON REPORT specified. The computed sum will not be shown unless you also break on report. see below demonstration. first select has no sum even though we have specified COMPUTE. The second select shows the sum since now we have done break on report.
SQL> compute sum of sal on report
SQL> select * from scott.emp order by empno ;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-1980 800 20
7499 ALLEN SALESMAN 7698 20-FEB-1981 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-1981 1250 500 30
7566 JONES MANAGER 7839 02-APR-1981 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-1981 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-1981 2850 30
7782 CLARK MANAGER 7839 09-JUN-1981 2450 10
7788 SCOTT ANALYST 7566 19-APR-1987 3000 20
7839 KING PRESIDENT 17-NOV-1981 5000 10
7844 TURNER SALESMAN 7698 08-SEP-1981 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-1987 1100 20
7900 JAMES CLERK 7698 03-DEC-1981 950 30
7902 FORD ANALYST 7566 03-DEC-1981 3000 20
7934 MILLER CLERK 7782 23-JAN-1982 1300 10
14 rows selected.
SQL> break on report
SQL> select * from scott.emp order by empno ;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-1980 800 20
7499 ALLEN SALESMAN 7698 20-FEB-1981 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-1981 1250 500 30
7566 JONES MANAGER 7839 02-APR-1981 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-1981 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-1981 2850 30
7782 CLARK MANAGER 7839 09-JUN-1981 2450 10
7788 SCOTT ANALYST 7566 19-APR-1987 3000 20
7839 KING PRESIDENT 17-NOV-1981 5000 10
7844 TURNER SALESMAN 7698 08-SEP-1981 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-1987 1100 20
7900 JAMES CLERK 7698 03-DEC-1981 950 30
7902 FORD ANALYST 7566 03-DEC-1981 3000 20
7934 MILLER CLERK 7782 23-JAN-1982 1300 10
sum 29025
14 rows selected.
SQL> -
00900 Invalid SQL Statement error
I'm teaching myself to write stored procedures, working in TOAD 10.5 with Oracle 10g. I keep getting error ORA-00900: invalid SQL Statement. Here's the code, cut down to bare minimum sample size. I can't see where I'm doing anything wrong.
If I cut out the cursor (taking it down to just "Begin" and "End"), it does run, but I can't see anything wrong with the cursor.
Any ideas?
CREATE OR REPLACE PROCEDURE IN_PROCESS_CASES_BOS
IS
V_HELLO VARCHAR2(10);
CURSOR C_MAIN IS
SELECT 'HELLO' FROM DUAL;
BEGIN
OPEN C_MAIN;
LOOP
FETCH C_MAIN INTO V_HELLO;
EXIT WHEN C_MAIN%NOTFOUND;
END LOOP;
CLOSE C_MAIN;
END;
END IN_PROCESS_CASES_BOS;
/Hi,
You've got 2 END statements, but only 1 BEGIN.
It helps a lot if you indent your code, so that every END is right below its correspoding BEGIN, and all the code in between them is indented. The same goes for IF and LOOP statements.
When posting any formatted text on this site (not just code), type these 6 characters:
\(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.
Try this:CREATE OR REPLACE PROCEDURE IN_PROCESS_CASES_BOS
IS
V_HELLO VARCHAR2(10);
CURSOR C_MAIN IS
SELECT 'HELLO' FROM DUAL;
BEGIN
OPEN C_MAIN;
LOOP
FETCH C_MAIN INTO V_HELLO;
EXIT WHEN C_MAIN%NOTFOUND;
END LOOP;
CLOSE C_MAIN;
END; Lose this line
END IN_PROCESS_CASES_BOS; -
Query cannot be parsed within the Builder ORA-00900: invalid SQL statement
Why am I getting the error message "Query cannot be parsed within the Builder. If you believe your query is syntactically correct, check the ''generic columns'' checkbox below the region source to proceed without parsing. ORA-00900: invalid SQL statement"
If I run the query in sqlplus it comes back with "no rows selected" which is what I want.
The function is valid and the user has privileges to run it.
Is there something I can do about it?
If I only have any field instead of the function the error goes away.
Can someone explain what is happening? I'm using 2.0.
select
F_TOTAL_AMOUNT_PAID('fees',a.acct_fee_id,0) "Fee Paid"
from fee_component a, fee b, license c
where a.acctfee_id = b.acctfee_id
and b.license_id = c.license_id
and b.fee_status = 'U'
and c.client_id = :P301_CLIENT_ID
Thanks I really appreciate any help I can get.Does your parsing schema have direct granted privileges to execute the function or privileges via a role? If it is through a role, you need to directly grant execute on the function to your parsing schema.
Mike -
Very Urgent: Apexlib error ora-00900 invalid sql statement
Hi,
If i'm opening a page where there are LOV I get the strange error in the debug mode. Has it perhaps anything to do with grants?
pls help asap if you can
Read report column mapping(ApexLib_TabForm.init)
...processing Interface execution selection
...ignore validation = NO
Get column list(ApexLib_Sql.getColumnList)
...parse query = 獥汥捴 䥎呅剆䅃䕟䑁呅Ⰺ䥎呅剆䅃䕟䑁呅⁉乔䕒䙁䍅彄䅔䕟䑉卐䱁夬ੈ佒䥚低彂䰬䕐彂䰊晲潭⁆䕐彉乔䕒䙁䍅彃䅌䕎䑁刊睨敲攠楮瑥牦慣敟摡瑥整睥敮慳瑟摡礨慤摟浯湴桳⡴潟摡瑥⠺倱㥟捡汥湤慲彤慴攬❙奙奍䵄䐧⤬ⴱ⤩⬱⁁乄⁌慳瑟摡礨瑯彤慴攨㩐ㄹ彣慬敮摡牟摡瑥Ⱗ奙奙䵍䑄✩⤊潲摥爠批‱
ORA-00900: invalid SQL statementHi Irvine74,
for ApexLib problems it's better to use the related SourceForge support forum at http://sourceforge.net/forum/?group_id=184339 , because I'm not always monitoring the OTN forum.
Are you only getting the error in debug mode?
Is your report query on that page a valid SQL statement?
If you comment out the PL/SQL code with /* */ (don't forget to add a NULL; statement at the end to have a valid region) on page 0 "ApexLib - Before footer", are you now getting an error from APEX that the statement isn't valid?
Patrick
My APEX Blog: http://inside-apex.blogspot.com
The ApexLib Framework: http://apexlib.sourceforge.net
The APEX Builder Plugin: http://sourceforge.net/projects/apexplugin/ -
Hi Experts,
Good Morning..
I registered the data template which i created in oracle apps and while i run that, ended in error... Plz help me..
Step :-1 Used Data Template as below:-
<?xml version="1.0" encoding="WINDOWS-1252" ?>
<dataTemplate name="EMP" defaultPackage="" description="Employee Data">
- <properties>
<property name="include_parameters" value="true" />
<property name="include_null_Element" value="true" />
<property name="xml_tag_case" value="upper" />
<property name="db_fetch_size" value="500" />
<property name="scalable_mode" value="off" />
<property name="include_rowsettag" value="false" />
<property name="debug_mode" value="off" />
</properties>
<parameters/>
<parameters name="pdeptno" dataType="number" defaultValue=" ">
</parameters>
<lexicals />
- <dataQuery>
- <sqlStatement name="DEPT" dataSourceRef="">
- <![CDATA[
SELECT DEPTNO,DNAME,
LOC,CURSOR(SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,nvl(COMM,0) COMM from EMP ) as EMP
from dept
where deptno=pdeptno
order by deptno]]>
</sqlStatement>
</dataQuery>
</dataTemplate>
Step -2:-
Registered in xml publisher administrator
Step -3:-
While i am running this getting below error-
XDO Data Engine Version No: 5.6.3
Resp: 20419
Org ID : 204
Request ID: 5380496
All Parameters: pdeptno=10
Data Template Code: EMP_DD
Data Template Application Short Name: FND
Debug Flag: N
{pdeptno=10}
Calling XDO Data Engine...
java.sql.SQLException: ORA-00900: invalid SQL statement
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:810)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:850)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1134)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3384)
at oracle.apps.xdo.dataengine.XMLPGEN.writeDefaultGroup(XMLPGEN.java:392)
at oracle.apps.xdo.dataengine.XMLPGEN.writeGroupStructure(XMLPGEN.java:286)
at oracle.apps.xdo.dataengine.XMLPGEN.processData(XMLPGEN.java:273)
at oracle.apps.xdo.dataengine.XMLPGEN.processXML(XMLPGEN.java:215)
at oracle.apps.xdo.dataengine.XMLPGEN.writeXML(XMLPGEN.java:254)
at oracle.apps.xdo.dataengine.DataProcessor.processDataStructre(DataProcessor.java:390)
at oracle.apps.xdo.dataengine.DataProcessor.processData(DataProcessor.java:355)
at oracle.apps.xdo.oa.util.DataTemplate.processData(DataTemplate.java:348)
at oracle.apps.xdo.oa.cp.JCP4XDODataEngine.runProgram(JCP4XDODataEngine.java:293)
at oracle.apps.fnd.cp.request.Run.main(Run.java:157)
Start of log messages from FND_FILE
Any mistake i made.. Issue may be silly..plz help me...
Thanks in advance..
HappyHi all,,,,
Thank so much for your valuable response regarding this issue..
Actually my scenario meet this below example, path for that example:-.
http://blogs.oracle.com/xmlpublisher/2007/02/data_templates_without_groupin.html
I am simply executing that data template. but getting this error :-
XDO Data Engine Version No: 5.6.3
Resp: 20419
Org ID : 204
Request ID: 5380496
All Parameters: pdeptno=10
Data Template Code: EMP_DD
Data Template Application Short Name: FND
Debug Flag: N
{pdeptno=10}
Calling XDO Data Engine...
java.sql.SQLException: ORA-00900: invalid SQL statement
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:810)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:850)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1134)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3384)
at oracle.apps.xdo.dataengine.XMLPGEN.writeDefaultGroup(XMLPGEN.java:392)
at oracle.apps.xdo.dataengine.XMLPGEN.writeGroupStructure(XMLPGEN.java:286)
at oracle.apps.xdo.dataengine.XMLPGEN.processData(XMLPGEN.java:273)
at oracle.apps.xdo.dataengine.XMLPGEN.processXML(XMLPGEN.java:215)
at oracle.apps.xdo.dataengine.XMLPGEN.writeXML(XMLPGEN.java:254)
at oracle.apps.xdo.dataengine.DataProcessor.processDataStructre(DataProcessor.java:390)
at oracle.apps.xdo.dataengine.DataProcessor.processData(DataProcessor.java:355)
at oracle.apps.xdo.oa.util.DataTemplate.processData(DataTemplate.java:348)
at oracle.apps.xdo.oa.cp.JCP4XDODataEngine.runProgram(JCP4XDODataEngine.java:293)
at oracle.apps.fnd.cp.request.Run.main(Run.java:157)
Start of log messages from FND_FILE -
I am very new to collections and I am having an issue creating my first collection. When I execute the following code I get ORA-00900 invalid sql.
apex_collection.create_collection_from_query ('TEST', 'select * from apex_collections', 'NO');
Any guidance is greatly appreciated. I am running Oracle 11g and APEX 4.1.0.00.32.Sorry bad example. I have tried several tables. One only had a few columns and just text and numbers. This is the table I am trying to load into the collection. It does not seem to matter what I put in as the sql, it always comes back invalid sql.
My table looks like this.
Name Null Type
MATERIAL_ID NOT NULL NUMBER
MATERIAL_NAME NOT NULL VARCHAR2(75)
MATERIAL_DESCRIPTION VARCHAR2(500)
CATEGORY_ID NOT NULL NUMBER
SUBCATEGORY_ID NUMBER
QTY NOT NULL NUMBER(2)
REQUESTED_QTY NUMBER(2)
I have to be doing something really simple wrong. -
Invalid SQL Statement when using execute for running Procedures
Hi ,
I create a simple stored procedure , it was created successfully , when i tried to run the StoredProcedure , it is giving me
exec myStoredProcedure() ;
please tell me why this is coming .hi
i am using oracle 10g with asp.net
i have created a procedure and it executed successfully, when i executed with exce <storedproc>
but when i call up this procedure with .net it is giving an error like this..
ERROR [42000] [Oracle][ODBC][Ora]ORA-00900: invalid SQL statement
any one pls suggest me how to resolve this issue
here is my stored procedure
create or replace
procedure sp_AddTrial (parStudyName VARCHAR2, parContactName VARCHAR2, parContactNumber varchar2, parDescription varchar2, parFactorName in varchar2, parTreatmentName in varchar2) is
Pos int;
Pos1 int;
parName varchar2(50);
parTName varchar(30);
parFactorNames varchar2(500);
parTreatments varchar2(500);
parWeight int;
parValue varchar2(20);
parValue1 varchar2(20);
parValue2 varchar2(20);
parValue3 varchar2(20);
begin
parFactorNames :=parFactorName;
parTreatments :=partreatmentname;
insert into mivrs_studyinfo(
study_id,
study_name,
contact_name,
phone_number,
description,
created_date,
modified_date
values
mivrs_studyinfo_seq.NEXTVAL,
parStudyName,
parContactName,
parContactNumber,
parDescription,
sysdate,
sysdate
if parTreatments is not null then
parTreatments := Concat(TRIM(parTreatments),',');
Pos1 := INSTR(parTreatments,',');
insert into temp values(1,'test');
IF length(parTreatments)!= 0 then
WHILE Pos1 > 0
loop
insert into temp values(2,Pos1);
parTName := TRIM(SUBSTR(parTreatments,0, Pos1 - 1));
parTreatments := SUBSTR(parTreatments,Pos1 + 1);
Pos1 := INSTR(parTreatments,',', 1);
parWeight := TRIM(SUBSTR(parTreatments,0, Pos1 - 1));
IF length(parTName) != 0 then
insert into mivrs_treatments (treatment_id, treatment_name, weight, study_id, created_date, modified_date) values (mivrs_treatments_seq.NEXTVAL, parTName, parWeight, mivrs_studyinfo_seq.CURRVAL,sysdate, sysdate);
end if;
parTreatments := SUBSTR(parTreatments, Pos1+1);
Pos1 := INSTR(parTreatments,',');
END loop;
END IF;
end if;
if parFactorNames is not null then
parFactorNames := Concat(TRIM(parFactorNames),',');
Pos := INSTR(parFactorNames,',');
IF length(parFactorNames)!= 0 then
WHILE Pos > 0
loop
parName := TRIM(SUBSTR(parFactorNames,0, Pos - 1));
parFactorNames := SUBSTR(parFactorNames,Pos + 1);
Pos := INSTR(parFactorNames,',', 1);
parValue := TRIM(SUBSTR(parFactorNames,0, Pos - 1));
parFactorNames := SUBSTR(parFactorNames,Pos + 1);
Pos := INSTR(parFactorNames,',', 1);
parValue1 := TRIM(SUBSTR(parFactorNames,0, Pos - 1));
parFactorNames := SUBSTR(parFactorNames,Pos + 1);
Pos := INSTR(parFactorNames,',', 1);
parValue2 := TRIM(SUBSTR(parFactorNames,0, Pos - 1));
parFactorNames := SUBSTR(parFactorNames,Pos + 1);
Pos := INSTR(parFactorNames,',', 1);
parValue3 := TRIM(SUBSTR(parFactorNames,0, Pos - 1));
IF length(parName) != 0 then
insert into mivrs_stratificationfactors (factor_id, factor_name, study_id, value1,value2,value3,value4) values (mivrs_stratfactors_seq.NEXTVAL, parName, mivrs_studyinfo_seq.CURRVAL,parValue,parValue1,parValue2,parValue3);
end if;
parFactorNames := SUBSTR(parFactorNames, Pos+1);
Pos := INSTR(parFactorNames,',');
END loop;
END IF;
end if;
end;
thank u
Sowjanya -
OWB Deployment Error: Invalid Sql Statement
Hi,
I am getting a error (Deployment Failure) on deploying my map. The map was
successfully deployed before. But suddenly after wards in a later deployment,
this error was given. Dropped the package.. and then still only the package spec was getting created in database, and not the body. Deployment Failure with the
message "Invalid SQL statement".
I have no clue ,where to start debugging from.
hav checked all SETOP and JOINER., and they are fine.
any idea , pls let me know..
it s too urgent.
Thanks and RegardsHi,
have you checked the package that was created in the target schema? Examining it may help you to identify the problem.
Regards,
Carsten. -
Help on Merge Statement ,I got 'ORA-00904: invalid column name' Error
Pls help
In Oracle 9i i implement the following qry
MERGE INTO jobs A
USING (select order_no,jOB_SEQ_NO from jobs_dlt) B
ON (A.ORDER_NO = B.ORDER_NO and A.JOB_SEQ_NO =B.JOB_SEQ_NO )
WHEN MATCHED THEN
UPDATE SET
A.ORDER_NO= B.ORDER_NO ,
A.JOB_SEQ_NO= B.JOB_SEQ_NO
WHEN NOT MATCHED THEN
INSERT (
A.JOB_SEQ_NO ,
A.ORDER_NO
VALUES (
B.JOB_SEQ_NO ,
B.ORDER_NO
but i got 'ORA-00904: invalid column name' Error
JOBS table Contain the above Column
how i implement the Merge Statment
Thanks in advance
By
SekarI seem to recall this error being spuriously (well unhelpfully) thrown if you tried to UPDATE a key that you used in the ON clause, but I could be mistaken.
For us to recreate this you would need to supply the exact version and scripts to create the tables in question.
Maybe you are looking for
-
Can I have 2 apple ID on one computer
Can I have 2 iTune accounts on one computer
-
I cant partition my hard drive
Hi everyone, I am running windows 7 home premium and i have a hp pavilion g6-2123 and I was unable to create a partition. So i thought this was a hardware problem... I go into disk management and click storage and right click my hard drive to
-
Missing classe to implement How to Web Printing with MS Excel
Hi there, we're trying to implement the How to paper "Web Printing with MS Excel". This paper comes with transport files to import the needed packages and classes. Now when I try to import that thing, the transport hangs. Checking the protocol shows
-
We are currently using local user accounts with CUCM 9.1.2 and are looking at integrating it into the active directory structure. We do utilize the same structure for user ID's. I am looking to find out what the changeover will entail and if anything
-
Why in primary key class overrided in EJB?
in EJB ... why in primary key class Object's Equals() and HashCode() method's were overridden ??