Getting ORA-00905: missing keyword
Hi,
While executing the procedure i am getting "ORA-00905: missing keyword" exception.
create or replace PROCEDURE POD_DBVERSION_PROC AS
CURSOR C1 IS SELECT POD_ID, SHORTNAME FROM POD_DATA WHERE POD_ID IS NOT NULL AND SHORTNAME IS NOT NULL AND SHORTNAME IN('BSA','AOA','AJA');
EXEC_STRING VARCHAR2(4000) :=NULL;
Podid number;
podname varchar2(30);
Row_id varchar2(20);
Seqnum number;
ErrorString1 varchar2(4000);
pod_name varchar2(60);
EXEC_STRING1 VARCHAR2(4000);
pod_cnt number;
type COL is table of varchar2(40);
rowid varchar2(40);
coll COL;
BEGIN
open C1;
loop
fetch C1 into Podid,podname;
exit when C1%NOTFOUND;
BEGIN
EXEC_STRING:='SELECT COUNT(*) INTO pod_cnt FROM POD_VERSION WHERE POD_ID='''||Podid||''' AND TIER=''DB'' and BUILD_LEVEL IN (SELECT ROW_ID FROM dboltp.s_db_ver_ondemd@SX'||podname||'M)';
EXECUTE IMMEDIATE EXEC_STRING;
DBMS_OUTPUT.PUT_LINE(EXEC_STRING);
DBMS_OUTPUT.PUT_LINE(pod_cnt);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
END LOOP;
END POD_DBVERSION_PROC;
/
In the above procedure i am formating "select into" string. This string need two values which will be comming from cursor C1.
I try to see the output of theEXEC_STRING, but it is comming good like bellow...
SELECT COUNT(*) INTO pod_cnt FROM POD_VERSION WHERE POD_ID='2' AND TIER='DB'
and BUILD_LEVEL IN (SELECT ROW_ID FROM dboltp.s_db_ver_ondemd@SXAJAM)
SELECT COUNT(*) INTO pod_cnt FROM POD_VERSION WHERE POD_ID='35' AND TIER='DB'
and BUILD_LEVEL IN (SELECT ROW_ID FROM dboltp.s_db_ver_ondemd@SXAOAM)
SELECT COUNT(*) INTO pod_cnt FROM POD_VERSION WHERE POD_ID='41' AND TIER='DB'
and BUILD_LEVEL IN (SELECT ROW_ID FROM dboltp.s_db_ver_ondemd@SXBSAM)
The same statement also working fine in SQL Developer..Could you please explain what will be worng here
Thanks in advance.
Thanks
Asif