Pls-00103 is the error
Create or replace procedure proc_ref as
Type t_type is ref cursor return emp%rowtype;
v_emp emp%rowtype;
Cursor c1 is select * from emp;
Begin
Open c1;
Loop
Fetch c1 into v_emp;
Exit When c1%notfound;
Dbms_output.put_line(‘ename:’||v_emp.ename||’sal:’||v_emp.sal||’empno:’||v_emp.empno);(error with this line)
End loop;
Close c1;
End;
Hi,
Problem with single quote :)
Create or replace procedure proc_ref as
Type t_type is ref cursor return emp%rowtype;
v_emp emp%rowtype;
Cursor c1 is select * from emp;
Begin
Open c1;
Loop
Fetch c1 into v_emp;
Exit When c1%notfound;
Dbms_output.put_line('ename:'||v_emp.ename||'sal:'||v_emp.sal||'empno:'||v_emp.empno);
End loop;
Close c1;
End;
{code}
Similar Messages
-
Encountered an error "PLS-00103: Encountered the symbol "CREATE" when expec
HI All,
I am creating a procedure and trying to use temp table...
Here is the code":
PROCEDURE P_PARENT_TREE
topic_id_in IN NUMBER,
topic_hierarchy_details_out OUT SYS_REFCURSOR
) IS
temp_children_level topic_children.children_level%TYPE;
temp_children_id topic_children.children_id%TYPE;
temp_topic_id topic.topic_id%TYPE;
CURSOR c_child_level IS
SELECT children_level, children_id
FROM topic_children
WHERE children_id = topic_id_in;
BEGIN
OPEN c_child_level;
FETCH c_child_level INTO temp_children_level,temp_topic_id ;
CLOSE c_child_level;
CREATE TEMPORARY TABLE IF NOT EXISTS topic_child
(t_topic_id NUMBER, t_children_id NUMBER, children_seq NUMBER);
WHILE temp_children_level > 0
LOOP
INSERT INTO topic_child(t_topic_id,t_children_id,children_seq)
values (
SELECT topic_id , children_id ,children_level
FROM topic_children
WHERE children_id = temp_topic_id);
temp_children_level := temp_children_level - 1;
END LOOP;
OPEN topic_hierarchy_details_out FOR
select * from topic_child;
END P_PARENT_TREE;
END TOPIC_PKG;
getting the error "PLS-00103: Encountered the symbol "CREATE" when expec"...
any idea why? or may be is there any other way to write this querysomething like
select connect_by_root child_topic ||sys_connect_by_path (topic, '>') path
from test
where connect_by_isleaf = 1
start with child_topic = 'aa4'
connect by child_topic = prior topicas in
SQL> with test as
2 (
3 select 0 sq, 'aa ' topic, 'aa1' child_topic from dual union all
4 select 1 sq, 'aa1' topic, 'aa2' child_topic from dual union all
5 select 3 sq, 'aa2' topic, 'aa3' child_topic from dual union all
6 select 4 sq, 'aa3' topic, 'aa4' child_topic from dual
7 )
8 select connect_by_root child_topic ||sys_connect_by_path (topic, '>') path
9 from test
10 where connect_by_isleaf = 1
11 start with child_topic = 'aa4'
12 connect by child_topic = prior topic
13 /
PATH
aa4>aa3>aa2>aa1>aa -
PLS-00103: Encountered the symbol "SELECT" when expecting one of the follow
Can any one tell me why I an getting compile error in Trigger with the following code (see below for the error message). Error is indicated in the IF statement Select clause.
Code:
-- AUdit Code Begin
-- Note: Ony for those tables having 'AUDIT' UDP
-- Value set to 'T'
IF (Select Count(*) From DBConfiguration
Where ConfigurationCode = 'AUDIT' AND
ConfigurationValue = 'T') > 0 THEN
WHEN (:new.WORKREQUESTSTATUS <> :old.WORKREQUESTSTATUS)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTSTATUS',
:old.WORKREQUESTSTATUS,:new.WORKREQUESTSTATUS,:new.UserId)
End;
WHEN (:new.WORKREQUESTSOURCE <> :old.WORKREQUESTSOURCE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTSOURCE',
:old.WORKREQUESTSOURCE,:new.WORKREQUESTSOURCE,:new.UserId)
End;
WHEN (:new.WORKREQUESTSOURCEID <> :old.WORKREQUESTSOURCEID)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTSOURCEID',
:old.WORKREQUESTSOURCEID,:new.WORKREQUESTSOURCEID,:new.UserId)
End;
WHEN (:new.WORKREQUESTDESC <> :old.WORKREQUESTDESC)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTDESC',
:old.WORKREQUESTDESC,:new.WORKREQUESTDESC,:new.UserId)
End;
WHEN (:new.WORKREQUESTDATE <> :old.WORKREQUESTDATE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTDATE',
CAST(:old.WORKREQUESTDATE AS varchar2(256)),CAST(:new.WORKREQUESTDATE AS varchar2(256)),:new.UserId)
End;
WHEN (:new.WORKREQUESTOWNER <> :old.WORKREQUESTOWNER)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTOWNER',
:old.WORKREQUESTOWNER,:new.WORKREQUESTOWNER,:new.UserId)
End;
WHEN (:new.WORKREQUESTAPPCODE <> :old.WORKREQUESTAPPCODE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTAPPCODE',
:old.WORKREQUESTAPPCODE,:new.WORKREQUESTAPPCODE,:new.UserId)
End;
WHEN (:new.WORKREQUESTAPPROVER <> :old.WORKREQUESTAPPROVER)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTAPPROVER',
:old.WORKREQUESTAPPROVER,:new.WORKREQUESTAPPROVER,:new.UserId)
End;
WHEN (:new.WORKREQUESTAPPDATE <> :old.WORKREQUESTAPPDATE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTAPPDATE',
CAST(:old.WORKREQUESTAPPDATE AS varchar2(256)),CAST(:new.WORKREQUESTAPPDATE AS varchar2(256)),:new.UserId)
End;
WHEN (:new.WORKREQUESTCOMMENT <> :old.WORKREQUESTCOMMENT)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTCOMMENT',
:old.WORKREQUESTCOMMENT,:new.WORKREQUESTCOMMENT,:new.UserId)
End;
WHEN (:new.CLOSEDATE <> :old.CLOSEDATE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'CLOSEDATE',
CAST(:old.CLOSEDATE AS varchar2(256)),CAST(:new.CLOSEDATE AS varchar2(256)),:new.UserId)
End;
WHEN (:new.ANALYTEKEY <> :old.ANALYTEKEY)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'ANALYTEKEY',
CAST(:old.ANALYTEKEY AS varchar2(256)),CAST(:new.ANALYTEKEY AS varchar2(256)),:new.UserId)
End;
WHEN (:new.SUBPURPOSEKEY <> :old.SUBPURPOSEKEY)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'SUBPURPOSEKEY',
CAST(:old.SUBPURPOSEKEY AS varchar2(256)),CAST(:new.SUBPURPOSEKEY AS varchar2(256)),:new.UserId)
End;
WHEN (:new.PURPOSEKEY <> :old.PURPOSEKEY)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'PURPOSEKEY',
CAST(:old.PURPOSEKEY AS varchar2(256)),CAST(:new.PURPOSEKEY AS varchar2(256)),:new.UserId)
End;
End if;
-- Audit End
Error:
95/5 PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
( - + case mod new not null others <an identifier>
<a double-quoted delimited-identifier> <a bind variable> avg
count current exists max min prior sql stddev sum variance
execute forall merge time timestamp interval date
<a string literal with character set specification>
<a number> <a single-quoted SQL string> pipe
<an alternatively-quoted string literal with character set specification>
<an alternativ
97/39 PLS-00103: Encountered the symbol ")" when expecting one of the following:
* & - + ; / at for mod remainder rem <an exponent (**)> and
or group having intersect minus order start union where
connect || multisetHere is the code:
-- AUdit Code Begin
-- Note: Ony for those tables having 'AUDIT' UDP
-- Value set to 'T'
IF (Select Count(DBConfigurationValue) From DBConfiguration
Where DBConfigurationCode = 'AUDIT' AND
DBConfigurationValue = 'T') > 0 THEN
WHEN (:new.WORKREQUESTSTATUS <> :old.WORKREQUESTSTATUS)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTSTATUS',
:old.WORKREQUESTSTATUS,:new.WORKREQUESTSTATUS,:new.UserId)
End;
WHEN (:new.WORKREQUESTSOURCE <> :old.WORKREQUESTSOURCE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTSOURCE',
:old.WORKREQUESTSOURCE,:new.WORKREQUESTSOURCE,:new.UserId)
End;
WHEN (:new.WORKREQUESTSOURCEID <> :old.WORKREQUESTSOURCEID)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTSOURCEID',
:old.WORKREQUESTSOURCEID,:new.WORKREQUESTSOURCEID,:new.UserId)
End;
WHEN (:new.WORKREQUESTDESC <> :old.WORKREQUESTDESC)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTDESC',
:old.WORKREQUESTDESC,:new.WORKREQUESTDESC,:new.UserId)
End;
WHEN (:new.WORKREQUESTDATE <> :old.WORKREQUESTDATE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTDATE',
CAST(:old.WORKREQUESTDATE AS varchar2(256)),CAST(:new.WORKREQUESTDATE AS varchar2(256)),:new.UserId)
End;
WHEN (:new.WORKREQUESTOWNER <> :old.WORKREQUESTOWNER)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTOWNER',
:old.WORKREQUESTOWNER,:new.WORKREQUESTOWNER,:new.UserId)
End;
WHEN (:new.WORKREQUESTAPPCODE <> :old.WORKREQUESTAPPCODE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTAPPCODE',
:old.WORKREQUESTAPPCODE,:new.WORKREQUESTAPPCODE,:new.UserId)
End;
WHEN (:new.WORKREQUESTAPPROVER <> :old.WORKREQUESTAPPROVER)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTAPPROVER',
:old.WORKREQUESTAPPROVER,:new.WORKREQUESTAPPROVER,:new.UserId)
End;
WHEN (:new.WORKREQUESTAPPDATE <> :old.WORKREQUESTAPPDATE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTAPPDATE',
CAST(:old.WORKREQUESTAPPDATE AS varchar2(256)),CAST(:new.WORKREQUESTAPPDATE AS varchar2(256)),:new.UserId)
End;
WHEN (:new.WORKREQUESTCOMMENT <> :old.WORKREQUESTCOMMENT)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'WORKREQUESTCOMMENT',
:old.WORKREQUESTCOMMENT,:new.WORKREQUESTCOMMENT,:new.UserId)
End;
WHEN (:new.CLOSEDATE <> :old.CLOSEDATE)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'CLOSEDATE',
CAST(:old.CLOSEDATE AS varchar2(256)),CAST(:new.CLOSEDATE AS varchar2(256)),:new.UserId)
End;
WHEN (:new.ANALYTEKEY <> :old.ANALYTEKEY)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'ANALYTEKEY',
CAST(:old.ANALYTEKEY AS varchar2(256)),CAST(:new.ANALYTEKEY AS varchar2(256)),:new.UserId)
End;
WHEN (:new.SUBPURPOSEKEY <> :old.SUBPURPOSEKEY)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'SUBPURPOSEKEY',
CAST(:old.SUBPURPOSEKEY AS varchar2(256)),CAST(:new.SUBPURPOSEKEY AS varchar2(256)),:new.UserId)
End;
WHEN (:new.PURPOSEKEY <> :old.PURPOSEKEY)
Begin
Insert INTO ADAMChangeAudit (ADAMChangeAuditKey,AuditTable,AuditRecordKey,AuditColumnName,AuditOldValue,AuditNewValue,AuditUser)
VALUES(ADAMChangeAuditKey.NextValue,'WORKREQUEST',:new.WORKREQUESTKEY,'PURPOSEKEY',
CAST(:old.PURPOSEKEY AS varchar2(256)),CAST(:new.PURPOSEKEY AS varchar2(256)),:new.UserId)
End;
End if; -
PLS-00103: Encountered the symbol "" when expecting one of the following:
Hi I am creating trigger using CFQUERY tag of cold fusion on oracle..
<CFQUERY DATASOURCE="CRM">
create or replace trigger AWC_ACCESSROLESID_TRI
before insert on AWC_ACCESSROLES
for each row
begin
select AWC_ACCESSROLESID_SEQ.nextval into :new.AR_ID from dual;
end;
</CFQUERY>
But the created trigger is not compiled, it is giving the following error
"Line # = 1 Column # = 6 Error Text = PLS-00103: Encountered the symbol "" when expecting one of the following: begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge <a single-quoted SQL string> pipe The symbol "" was ignored."
If I edit that trigger in enterprose manager console by pressing space and compile that, it is working fine with out any error. If i run the above statement in sql *plus, It is working fine with out any error.
Can you please tell me why this is happening if i run it using cfquery tag and also the possible solutions.
Thanks in advance,
VinodSo it works in Enterprise manager. It works in SQL*Plus. It doesn't work in CFQUERY. Sounds to me like a ColdFusion problem rather than an Oracle problem to be honest. Aren't there any ColdFusion support resources?
Cheers, APC -
Hello,
I wanted to use the APEX_ITEM.DISPLAY_AND_SAVE
Here is my query:
DECLARE
QUERY VARCHAR2 (2000);
BEGIN
QUERY := 'SELECT '
||'APEX_ITEM.DISPLAY_AND_SAVE(1,REGISTRATION_ID,'f01_'||ROWNUM, NULL) REGISTRATION_ID, '
||'APEX_ITEM.DISPLAY_AND_SAVE(2,STATUS,'f02_'||ROWNUM, NULL) STATUS, '
||'APEX_ITEM.DISPLAY_AND_SAVE(3,CALL_CODE,'f03_'||ROWNUM, NULL) CALL_CODE, '
||'APEX_ITEM.DISPLAY_AND_SAVE(4,PARTNER_USER_ID,'f04_'||ROWNUM, NULL) PARTNER_USER_ID,'
||'APEX_ITEM.DISPLAY_AND_SAVE(5,COORDINATOR_USER_ID,'f05_'||ROWNUM, NULL) COORDINATOR_USER_ID, '
||'APEX_ITEM.DISPLAY_AND_SAVE(6,COORDINATOR_EMAIL,'f06_'||ROWNUM, NULL) COORDINATOR_EMAIL, '
||'APEX_ITEM.DISPLAY_AND_SAVE(7,COORDINATOR_FINAUTH_EMAIL,'f07_'||ROWNUM, NULL) COORDINATOR_FINAUTH_EMAIL,'
||'APEX_ITEM.DISPLAY_AND_SAVE(8,COORDINATOR_FULL_ADDRESS,'f08_'||ROWNUM, NULL) COORDINATOR_FULL_ADDRESS, '
||'APEX_ITEM.DISPLAY_AND_SAVE(9,COORDINATOR_NAME,'f09_'||ROWNUM, NULL) COORDINATOR_NAME, '
||'APEX_ITEM.DISPLAY_AND_SAVE(10,COORDINATOR_FAX,'f10_'||ROWNUM, NULL) COORDINATOR_FAX,'
||'APEX_ITEM.DISPLAY_AND_SAVE(11,COORDINATOR_TEL,'f11_'||ROWNUM, NULL) COORDINATOR_TEL, '
||'APEX_ITEM.DISPLAY_AND_SAVE(12,COORDINATOR_COUNTRY,'f12_'||ROWNUM, NULL) COORDINATOR_COUNTRY, '
||'APEX_ITEM.DISPLAY_AND_SAVE(13,COORDINATOR_COMPANY_NAME,'f13_'||ROWNUM, NULL) COORDINATOR_COMPANY_NAME,'
||'APEX_ITEM.DISPLAY_AND_SAVE(14,DATE_LETTER_SENT,'f14_'||ROWNUM, NULL) DATE_LETTER_SENT, '
||'APEX_ITEM.DISPLAY_AND_SAVE(15,DATE_LAST_SUBMISSION,'f15_'||ROWNUM, NULL) DATE_LAST_SUBMISSION, '
||'APEX_ITEM.DISPLAY_AND_SAVE(16,PROPOSAL_ACRONYM,'f16_'||ROWNUM, NULL) PROPOSAL_ACRONYM,'
||'APEX_ITEM.DISPLAY_AND_SAVE(17,INSTRUMENT_CODE,'f17_'||ROWNUM, NULL) INSTRUMENT_CODE, '
||'APEX_ITEM.DISPLAY_AND_SAVE(18,TITLE,'f18_'||ROWNUM, NULL) TITLE, '
||'APEX_ITEM.DISPLAY_AND_SAVE(19,SUBMITTED,'f19_'||ROWNUM, NULL) SUBMITTED, '
||'APEX_ITEM.DISPLAY_AND_SAVE(20,PREPARATION,'f20_'||ROWNUM, NULL) PREPARATION, '
||'APEX_ITEM.DISPLAY_AND_SAVE(21,PASS_BY_MAIL,'f21_'||ROWNUM, NULL) PASS_BY_MAIL,'
||'APEX_ITEM.DISPLAY_AND_SAVE(22,PROPOSAL_ID,'f22_'||ROWNUM, NULL) PROPOSAL_ID, '
||'APEX_ITEM.DISPLAY_AND_SAVE(23,PROPOSAL_NUMBER,'f23_'||ROWNUM, NULL) PROPOSAL_NUMBER '
||' FROM SUZANREGISTRATIONVIEW '
||' where 1 = 1 ';
IF LENGTH (V ('P4_REGISTRATION_ID')) > 0
THEN
QUERY :=
QUERY || ' and REGISTRATION_ID like ' || V ('P4_REGISTRATION_ID');
ELSE
QUERY := QUERY || '';
END IF;
IF LENGTH (V ('P4_CALL_CODE')) > 0
THEN
QUERY := QUERY || ' and CALL_CODE like ''' || V ('P4_CALL_CODE') || '''';
ELSE
QUERY := QUERY || '';
END IF;
IF LENGTH (V ('P4_COORDINATOR_USER_ID')) > 0
THEN
QUERY :=
QUERY
|| ' and (upper(COORDINATOR_USER_ID)) like (upper('''
|| V ('P4_COORDINATOR_USER_ID')
|| '''))';
ELSE
QUERY := QUERY || '';
END IF;
IF LENGTH (V ('P4_COORDINATOR_FINAUTH_EMAIL')) > 0
THEN
QUERY :=
QUERY
|| ' and (upper(R.COORDINATOR_EMAIL)) like (upper('''
|| V ('P4_COORDINATOR_FINAUTH_EMAIL')
|| '''))';
ELSE
QUERY := QUERY || '';
END IF;
IF LENGTH (V ('P4_COORDINATOR_NAME')) > 0
THEN
QUERY :=
QUERY
|| ' and upper(COORDINATOR_NAME) like (upper('''
|| V ('P4_COORDINATOR_NAME')
|| '''))';
ELSE
QUERY := QUERY || '';
END IF;
IF LENGTH (V ('P4_COORDINATOR_COMPANY_NAME')) > 0
THEN
QUERY :=
QUERY
|| ' and (upper(COORDINATOR_COMPANY_NAME)) like (upper('''
|| V ('P4_COORDINATOR_COMPANY_NAME')
|| '''))';
ELSE
QUERY := QUERY || '';
END IF;
IF LENGTH (V ('P4_PARTNER_USER_ID')) > 0
THEN
QUERY :=
QUERY
|| ' and (upper(PARTNER_USER_ID)) like (upper('''
|| V ('P4_PARTNER_USER_ID')
|| '''))';
ELSE
QUERY := QUERY || '';
END IF;
IF LENGTH (V ('P4_PROPOSAL_ACRONYM')) > 0
THEN
QUERY :=
QUERY
|| ' and (upper(proposal_acronym)) like (upper('''
|| V ('P4_PROPOSAL_ACRONYM')
|| '''))';
ELSE
QUERY := QUERY || '';
END IF;
RETURN QUERY;
END;
And here is the error encountered:
1 error has occurred
* Function returning SQL query: 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-06550: line 5, column 57: PLS-00103: Encountered the symbol "F01_" when expecting one of the following: * & = - + ; < / > at in is mod remainder not rem <> or != or ~= >= <= <> and or like LIKE2_ LIKE4_ LIKEC_ between || member SUBMULTISET_)
I don't understand why the engine returns an error at that point.
Despite the fact that I follow the user guide and the Denes Kubicek's sample examples, I still have that error.
If I remove the part 'f01_' || and only keep the rownum, the problem is solved.
Do you have any idea ?
Thanks in advance for your answers.
Regards,
Stessy DelcroixHI MickyWay,
So simple. :-)
Problem solved.
Thanks a lot (merci beaucoup) -
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the f
I'm trying to follow an example pl/sql program to select from one table and insert into a second table in a LOOP.
I get a syntax error which I can't figure out
Line # = 67 Column # = 0 Error Text = 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
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
pipe
What is the cause?
IS
BEGIN
declare
v_pk1 bb_bb60_stats.pk1%TYPE;
v_event_type bb_bb60_stats.event_type%TYPE;
v_user_pk1 bb_bb60_stats.user_pk1%TYPE;
v_course_pk1 bb_bb60_stats.course_pk1%TYPE;
v_group_pk1 bb_bb60_stats.group_pk1%TYPE;
v_forum_pk1 bb_bb60_stats.forum_pk1%TYPE;
v_internal_handle bb_bb60_stats.internal_handle%TYPE;
v_content_pk1 bb_bb60_stats.content_pk1%TYPE;
v_data bb_bb60_stats.data%TYPE;
v_timestamp bb_bb60_stats.timestamp%TYPE;
v_status bb_bb60_stats.status%TYPE;
v_session_id bb_bb60_stats.session_id%TYPE;
v_messages bb_bb60_stats.messages%TYPE;
INSERT_COUNT NUMBER := 1;
CURSOR curs_aa
IS
SELECT * from bb_bb60_stats.activity_accumulator ;
BEGIN
OPEN curs_aa;
LOOP
FETCH curs_aa into
v_pk1,
v_event_type,
v_user_pk1 ,
v_course_pk1,
v_group_pk1,
v_forum_pk1,
v_internal_handle,
v_content_pk1 ,
v_data,
v_timestamp ,
v_status ,
v_session_id ,
v_messages;
INSERT INTO csuh_custom.aa_partitioned
VALUES
v_pk1,
v_event_type,
v_user_pk1 ,
v_course_pk1,
v_group_pk1,
v_forum_pk1,
v_internal_handle,
v_content_pk1,
v_data,
v_timestamp,
v_status,
v_session_id,
v_messages
-- commit after every 100 inserts to avoid large rollback segments
IF INSERT_COUNT = 25000 THEN
COMMIT;
INSERT_COUNT := 1;
ELSE
INSERT_COUNT := INSERT_COUNT + 1;
END IF;
END LOOP;
CLOSE curs_aa;When I add the END;
I get
Line # = 66 Column # = 0 Error Text = 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
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
pipe -
Yesterday AM. my customer went live with an upgrade. Things started out ok, but as the load on the system started to build, we started seeing errors.
The reported error is:
S1000 Oracle ODBC Ora ORA-06550: line 1, column 42:
PLS-00103: Encountered the symbol "¿" when expecting one of the following:
. ( ) , * @ % & = - + < / > at in is mod remainder not rem =>
<an exponent (**)> <> or != or ~= >= <= <> and or like
This is in response to calling a stored procedure with this signature.
MY_THING (
p1 IN NUMBER,
p2 OUT NUMBER,
p2 IN NUMBER
I believe this is a failure with the ODBC driver to parse
{call MY_STUFF.MY_THING(791200, ?, 1067744)}
Now to head off the obvious responses, I'm going to say these things in boldface
the procedure itself is fine, and works flawlessly under test
*nowhere in any of the code is an upside-down '?' as reported in the error message*
Has anyone else encountered this--or better yet solved it?thanks for the replies.
I'd have to rule out triggers at the point the stored procedure is run. Other than logging, it doesn't do any writes to the database. It does a couple of look-ups, and returns the results in a cursor. As for the web servers, they're pretty much copies of each other. 'Out of the box + updates' Windows Server 2008 machines with our application installed on each.
The software issuing the ODBC call is old, well worn, tried and true C++. In this case the only string parameters passed are 'PA' or 'PJ' the rest is all integers.
But again I want to stress that it doesn't appear that we reach the database when it fails. It appears to fail when the ODBC driver is parsing the '{call xxxxxx} statement.
On a hunch, I've just reconfigured our application to treat the offensive call as if it were an 'external' reference. Meaning that a new ODBC connection will be created/destroyed for each run. Not very efficient, but I'll take slow over broken any day. It's too early to tell if this will eliminate the error. -
PLS-00103: Encountered the symbol ""
Hi
I'm trying to create a PL/SQL function using JDBC and the procedure gets created but with status invalid. After checking the user_errors view I get:
PLS-00103: Encountered the symbol "" when expecting one of the following: begin function package pragma procedure subtype type use form current cursor external language
I'm using the following statement:
statement = connection.prepareStatement ("CREATE OR REPLACE FUNCTION SCOTT.WHATEVER return varchar2 as begin return ('Whatever 2'); end;");
statement.execute ();
If I run the same statement from SQL*Plus I get no problems.
Yes!, the application requires that I create store procedures using JDBC, no other way.
Any ideas?
Regards,
Néstor BoscánNestor,
Works for me on Oracle 9.2.0.7 database (running on SUN [sparc] Solaris 9) with JDK 1.4.2_07 and "ojdbc14.jar" JDBC [thin] driver.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class CrSqlFun {
public static void main(String[] args) {
Connection c = null;
PreparedStatement ps = null;
String url = "jdbc:oracle:thin:scott/tiger@host:1521:orcl";
String sql = "create or replace function WHATEVER return varchar2 as " +
"begin return 'Whatever 2'; end;";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
c = DriverManager.getConnection(url);
ps = c.prepareStatement(sql);
ps.executeUpdate();
catch (Exception x) {
x.printStackTrace(System.err);
finally {
if (ps != null) {
try {
ps.close();
catch (SQLException sx) {
System.out.println("Failed to close statement.");
if (c != null) {
try {
c.close();
catch (SQLException sx) {
System.out.println("Failed to close connection.");
}Good Luck,
Avi. -
Error while creating a procedure (PLS-00103)
Hi Am create the follwing Procedure:-
create or replace PROCEDURE XL_SP_ROGUEUSERS (
csrresultset_inout IN OUT sys_refcursor,
intuserkey_in IN NUMBER,
strsortcolumn_in IN VARCHAR2,
strsortorder_in IN VARCHAR2,
intstartrow_in IN NUMBER,
intpagesize_in IN NUMBER,
intdocount_in IN NUMBER,
inttotalrows_out OUT NUMBER,
strfiltercolumnlist_in IN VARCHAR2,
strfiltercolumnvaluelist_in IN VARCHAR2,
strudfcolumnlist_in IN VARCHAR2,
strudfcolumnvaluelist_in IN VARCHAR2,
struserlogin_in IN VARCHAR2,
strfirstname_in IN VARCHAR2,
strlastname_in IN VARCHAR2,
strdate_in IN VARCHAR2
AS
BEGIN
DECLARE
whereclause VARCHAR2(8000);
select_stmt VARCHAR2(8000);
strColumnList VARCHAR2(4000);
strDateFormat VARCHAR2 (80);
strFromClause VARCHAR2(4000);
strWhereClause VARCHAR2(4000);
strOrderByClause VARCHAR2(2000);
intSortDirection_in PLS_INTEGER;
entsum varchar2(20) := 'Entitlements Summary';
str_row EXCEPTION;
do_cnt EXCEPTION;
no_logged_in_user EXCEPTION;
property_not_found EXCEPTION;
pragma exception_init(Str_row,-20001);
pragma exception_init(Do_cnt,-20002);
pragma exception_init(no_logged_in_user,-20003);
BEGIN
-- Throw exception if the start row or page size is either NULL or have
-- values less than or equal to zero
IF (intstartrow_in <= 0 OR intpagesize_in <= 0 OR intstartrow_in IS NULL OR intpagesize_in IS NULL)
THEN
RAISE str_row;
END IF;
-- Throw exception if the intdocount_in parameter is NULL or has a value
-- other than 0 and 1
IF intdocount_in NOT IN (0, 1, 2) OR intdocount_in IS NULL
THEN
RAISE do_cnt;
END IF;
-- Throw exception if the intuserkey_in (logged in user) parameter is NULL
IF intuserkey_in IS NULL or intuserkey_in <= 0
THEN
RAISE no_logged_in_user;
END IF;
-- Now, we start accumulating the whereclause based on the input
-- parameters, performing error checking along the way.
--Organization Permissioning.
/* whereclause := ' and usr.act_key IN (SELECT DISTINCT act2.act_key FROM '||
' act act2, aad, usg, ugp, usr usr5 '||
' WHERE act2.act_key = aad.act_key '||
' and aad.ugp_key = usg.ugp_key '||
' and ugp.ugp_key = usg.ugp_key'||
' and usg.usr_key = usr5.usr_key'||
' and usr5.usr_key = '||intuserkey_in||')'; */
IF strfiltercolumnlist_in IS NOT NULL AND
strfiltercolumnvaluelist_in IS NOT NULL THEN
whereclause := whereclause
|| xl_sfg_parseparams(strfiltercolumnlist_in,
strfiltercolumnvaluelist_in);
END IF;
IF struserlogin_in IS NOT NULL THEN
whereclause := whereclause
|| ' AND UPPER(usr.usr_login) LIKE '
|| UPPER (''''||struserlogin_in||'''')
|| ' ';
END IF;
IF strudfcolumnlist_in IS NOT NULL AND
strudfcolumnvaluelist_in IS NOT NULL THEN
whereclause := whereclause
|| xl_sfg_parseparams(strudfcolumnlist_in,
strudfcolumnvaluelist_in);
END IF;
-- Perform the count query and store the result in inttotalrows_out
inttotalrows_out := 0;
IF intdocount_in IN (1,2) THEN
EXECUTE IMMEDIATE ' select count(*) from((SELECT upper(rcd.RCD_VALUE) as "User ID" '|| ' FROM rce, obj, rcd, orf '||
' WHERE '||
' RCE_STATUS like 'No Match Found' '||
' AND ((orf.ORF_FIELDNAME like 'User ID') or (orf.ORF_FIELDNAME like 'User%Login')) '||
' AND rce.OBJ_KEY = obj.OBJ_KEY '||
' AND rce.RCE_KEY = rcd.RCE_KEY '||
' AND rcd.ORF_KEY = orf.ORF_KEY '||
' ) '||
' MINUS '||
' (SELECT usr.USR_LOGIN FROM usr '||
' WHERE '||
' usr.USR_STATUS like 'Active')) '||
whereclause INTO inttotalrows_out;
-- UI needs the SP to return result set always. The following is returned
-- when the indocount is 2 which does not return any result set but count
IF intdocount_in = 2 THEN
select_stmt := 'SELECT ''dummy'' FROM dual';
OPEN csrresultset_inout FOR select_stmt;
END IF;
END IF;
-- If intdocount_in is 2, UI just wants to get the totalrows to give
-- the warning to users if the result set exceeds the limit set by
-- UI. When ntdocount_in is 2, the following block won't be executed.
IF intdocount_in IN (0,1) THEN
-- Construct the select query by calling XL_SPG_GetPagingSql.
-- This is the main query for this stored procedure
strOrderByClause := ' usr.usr_login';
--strOrderByClause := ' req.req_key';
IF strsortorder_in = 'DESC' THEN
intSortDirection_in := 0;
ELSE
intSortDirection_in := 1;
END IF;
XL_SPG_GetPagingSql(strColumnList,
strFromClause,
whereclause,
strOrderByClause,
intSortDirection_in,
intStartRow_in,
intPageSize_in,
select_stmt
OPEN csrresultset_inout FOR select_stmt;
END IF;
-- Exception Handling
EXCEPTION
WHEN Str_row THEN
RAISE_APPLICATION_ERROR(sqlcode,
'Start Row/Page Size cannot be NULL OR less than or equal to zero ');
WHEN Do_cnt THEN
RAISE_APPLICATION_ERROR(sqlcode,
'Do Count must be 0, 1 or 2. ');
WHEN no_logged_in_user THEN
RAISE_APPLICATION_ERROR(sqlcode,
'Logged-in User Key cannot be NULL OR less than or equal to zero ');
END;
end XL_SP_ROGUEUSERS;
But Am getting the following error message, I couldn't figure wat it is.Can anyone help me:-
PLS-00103: Encountered the symbol "NO" when expecting one of the following: * & = - + ; < / > at in is mod remainder not rem return returning <an exponent (**)> <> or != or ~= >= <= <> and or like LIKE2_ LIKE4_ LIKEC_ between into using || bulk member SUBMULTISET_Please use tags when posting code. Also please format the code so that blocks line up vertically - often that makes syntax errors like missing END IFs etc much easier to spot.
-
The following anonymous block works fine
begin
null;
end;
/but if I add a space between "end" and ";", like this
begin
null;
end ;
/I get ORA-06550 and "PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following ..." errors.
I'm running version 1.5.4, Build MAIN-5940, on Windows XP.racist!
No, really, the two should behave in the same manner, so if the syntax is correct (which is), both should work. As F9 doesn't, it's a bug.
Regards,
K. -
can you please tell me what am i missing. i am getting below error.
Error(8,12): PLS-00103: Encountered the symbol "C_SEL" when expecting one of the following: := . ( @ % ;
CREATE OR REPLACE PACKAGE BODY "XXDL_PN_LOAD_EMP_ASSIGN_PKG"
AS
FUNCTION insert_pn_emp_space_assign
RETURN NUMBER
IS
BEGIN
CURSOR c_sel IS --NO RECORDS FOUND
SELECT room_id ,
room_scheduler,
benches,
lab_type,
room_num,
floor_id ,
DEPARTMENT_NAME ,
room_eff_from_date ,
room_eff_to_date ,
org_id ,
pi_id ,
dept_pct ,
pi_pct ,
FUNCTIONAL_USE_PCT ,
RESEARCH_EXPLANATION ,
SUB_DEPT ,
FUNCTIONAL_USE_CODE ,
FUNCTIONAL_USE_DESCRIPTION ,
COUNT(1)
FROM XXDL.XXDL_CD_FACILITY k
WHERE pi_id NOT LIKE 'FMS%'
--and floor_id ='00'
--and pi_id='04309605'
AND room_eff_to_date IS NULL
-- and room_id ='07-590-02-2134'
AND room_id NOT IN
(SELECT location_code
FROM PN_SPACE_ASSIGN_EMP_V
WHERE emp_space_assign_id IS NOT NULL
AND EXISTS
( SELECT DISTINCT location_code
FROM pn_locations_all
WHERE room_id=location_code
--and nvl(to_date(room_eff_to_date,'Mon/dd/RRRR'),active_end_date)=active_end_date
GROUP BY room_id ,
DEPARTMENT_NAME ,
room_scheduler,
benches,
lab_type,
room_num,
floor_id ,
room_eff_from_date ,
room_eff_to_date ,
org_id ,
pi_id ,
dept_pct ,
pi_pct ,
FUNCTIONAL_USE_PCT ,
RESEARCH_EXPLANATION ,
SUB_DEPT ,
FUNCTIONAL_USE_CODE ,
FUNCTIONAL_USE_DESCRIPTION
HAVING COUNT(1)=1 ;
CURSOR c_conc( p_room_id VARCHAR2 ,p_dept_name VARCHAR2 ,p_piid VARCHAR2 ,p_eff_date VARCHAR2 )
IS
SELECT FUNCTIONAL_USE_PCT ATTRIBUTE5 ,
RESEARCH_EXPLANATION ATTRIBUTE6 ,
SUB_DEPT ATTRIBUTE7 ,
dept_pct ATTRIBUTE1 ,
pi_pct ATTRIBUTE2 ,
FUNCTIONAL_USE_CODE ATTRIBUTE3 ,
FUNCTIONAL_USE_DESCRIPTION ATTRIBUTE4
FROM XXDL.XXDL_CD_FACILITY
WHERE room_id =p_room_id
AND department_name =p_dept_name
AND pi_id =p_piid
AND 1 =2------not used
AND room_eff_to_date IS NULL
--and to_date(room_eff_to_date,'Mon/dd/RRRR')=to_date(p_eff_date,'Mon/dd/RRRR')
l_person_id NUMBER;
l_location_id NUMBER;
l_parent_loc_id NUMBER;
l_attribute5 VARCHAR2(500);
l_attribute6 VARCHAR2(500);
l_attribute7 VARCHAR2(500);
l_attribute1 VARCHAR2(500);
l_attribute2 VARCHAR2(500);
l_attribute3 VARCHAR2(500);
l_attribute4 VARCHAR2(500);
BEGIN
mo_global.set_policy_context('S',84);
FOR c2 IN c_sel
LOOP
l_parent_loc_id:= NULL;
BEGIN
SELECT location_id
INTO l_parent_loc_id -- NO RECORDS RETURNED FROM CURSOR
FROM pn_locations_all
WHERE location_alias = c2.floor_id
AND location_type_lookup_code ='FLOOR';
EXCEPTION
WHEN OTHERS THEN
l_parent_loc_id:= NULL;
END;
l_location_id:= NULL;
BEGIN
SELECT location_id
INTO l_location_id
FROM pn_locations_all
WHERE location_code = c2.room_id
AND parent_location_id =l_parent_loc_id;
EXCEPTION
WHEN OTHERS THEN
l_location_id:= NULL;
END;
l_attribute3:=NULL;
l_attribute4:=NULL;
l_attribute5:=NULL;
l_attribute6:=NULL;
l_attribute7:=NULL;
FOR c3 IN c_conc(c2.room_id,c2.department_name,c2.pi_id,c2.room_eff_to_date)
LOOP
IF l_attribute5 IS NULL THEN
l_attribute5 :=c3.attribute3||'.'||c3.attribute5;
ELSE
IF c3.attribute5 IS NOT NULL THEN
l_attribute5 :=l_attribute5||','||c3.attribute3||'.'||c3.attribute5;
END IF;
END IF;
IF l_attribute6 IS NULL THEN
IF c3.attribute6 IS NOT NULL THEN
l_attribute6 :=c3.attribute3||'.'||c3.attribute6;
END IF;
ELSE
IF c3.attribute6 IS NOT NULL THEN
l_attribute6 :=l_attribute6||','||c3.attribute3||'.'||c3.attribute6;
END IF;
END IF;
IF l_attribute7 IS NULL THEN
IF c3.attribute7 IS NOT NULL THEN
l_attribute7 :=c3.attribute3||'.'||c3.attribute7;
END IF;
ELSE
IF c3.attribute7 IS NOT NULL THEN
l_attribute7 :=l_attribute7||','||c3.attribute3||'.'||c3.attribute7;
END IF;
END IF;
--functional code
IF l_attribute3 IS NULL THEN
l_attribute3 :=c3.attribute3;
ELSE
IF c3.attribute3 IS NOT NULL THEN
l_attribute3 :=l_attribute3||','||c3.attribute3;
END IF;
END IF;
--functional desc
IF l_attribute4 IS NULL THEN
l_attribute4 :=c3.attribute4;
ELSE
IF c3.attribute4 IS NOT NULL THEN
l_attribute4 :=l_attribute4||','||c3.attribute4;
END IF;
END IF;
END LOOP;
l_person_id:=NULL;
BEGIN
SELECT person_id
INTO l_person_id
FROM per_all_people_f
WHERE employee_number=c2.pi_id
AND sysdate BETWEEN effective_start_date AND effective_end_date ;
EXCEPTION
WHEN OTHERS THEN
l_person_id:=NULL;
END;
insert into PN_EMP_SPACE_ASSIGN_ITF
BATCH_NAME
,ENTRY_TYPE
,EMP_SPACE_ASSIGN_ID
,LOCATION_ID
,EMPLOYEE_ID
,COST_CENTER_CODE
,ALLOCATED_AREA
,LAST_UPDATE_DATE
,LAST_UPDATE_LOGIN
,CREATED_BY
,CREATION_DATE
,LAST_UPDATED_BY
,ATTRIBUTE_CATEGORY
,ATTRIBUTE1
,ATTRIBUTE2
,ATTRIBUTE3
,ATTRIBUTE4
,ATTRIBUTE5
,ATTRIBUTE6
,ATTRIBUTE7
,ATTRIBUTE8
,ATTRIBUTE9
,ATTRIBUTE10
,ATTRIBUTE11
,ATTRIBUTE12
,ATTRIBUTE13
,ATTRIBUTE14
,ATTRIBUTE15
,TRANSFERRED_TO_CAD
,TRANSFERRED_TO_PN
,ERROR_MESSAGE
,SOURCE
,REQUEST_ID
,PROGRAM_APPLICATION_ID
,PROGRAM_ID
,PROGRAM_UPDATE_DATE
,EMP_ASSIGN_START_DATE
,EMP_ASSIGN_END_DATE
,UTILIZED_AREA
,CHANGE_DATE
,CHANGE_MODE
,PROJECT_ID
,TASK_ID
values--custom table columns
'07-590_floor_bulk_spc' --BATCH_NAME
,'A' --ENTRY_TYPE
,PN_SPACE_ASSIGN_EMP_S.nextval --EMP_SPACE_ASSIGN_ID
,l_location_id --LOCATION_ID
,l_person_id --EMPLOYEE_ID
,1028389 --COST_CENTER_CODE
,0 --ALLOCATED_AREA
,sysdate --LAST_UPDATE_DATE
,157092 --LAST_UPDATE_LOGIN
,157092 --CREATED_BY
,sysdate --CREATION_DATE
,157092 --LAST_UPDATED_BY
,null --ATTRIBUTE_CATEGORY
,c2.dept_pct --ATTRIBUTE1
,c2.pi_pct --ATTRIBUTE2
,C2.FUNCTIONAL_USE_CODE --ATTRIBUTE3
,C2.FUNCTIONAL_USE_DESCRIPTION --ATTRIBUTE4
,C2.FUNCTIONAL_USE_PCT --ATTRIBUTE5
,C2.RESEARCH_EXPLANATION --ATTRIBUTE6
,C2.SUB_DEPT --ATTRIBUTE7
,null --ATTRIBUTE8
,null --ATTRIBUTE9
,null --ATTRIBUTE10
,c2.ORG_Id||'-'||c2.DEPARTMENT_NAME --ATTRIBUTE11
,null --ATTRIBUTE12
,null --ATTRIBUTE13
,null --ATTRIBUTE14
,null --ATTRIBUTE15
,null --TRANSFERRED_TO_CAD
,null --TRANSFERRED_TO_PN
,null --ERROR_MESSAGE
,'TST' --SOURCE
,null --REQUEST_ID
,null --PROGRAM_APPLICATION_ID
,null --PROGRAM_ID
,null --PROGRAM_UPDATE_DATE
,to_date(c2.room_eff_from_date,'mon/dd/RRRR') --EMP_ASSIGN_START_DATE
,to_date(c2.room_eff_to_date,'mon/dd/RRRR') --EMP_ASSIGN_END_DATE
,null --UTILIZED_AREA
,null --CHANGE_DATE
,null --CHANGE_MODE
,null --PROJECT_ID
,null --TASK_ID --07-590-02-ELEV02
END LOOP;
RETURN 1;
EXCEPTION
WHEN OTHERS THEN
FND_FILE.PUT_LINE(FND_FILE.LOG,'Error while insert_pn_emp_space_assign - '||sqlerrm);
RETURN 0;
END;
WHEN OTHERS THEN
FND_FILE.PUT_LINE(FND_FILE.LOG,'Error while insert_pn_emp_space_assign - '||sqlerrm);
RETURN 0;
END insert_pn_emp_space_assign;
END XXDL_PN_LOAD_EMP_ASSIGN_PKG;893185 wrote:
can you please tell me what am i missing. i am getting below error.
Error(8,12): PLS-00103: Encountered the symbol "C_SEL" when expecting one of the following: := . ( @ % ;
CREATE OR REPLACE PACKAGE BODY "XXDL_PN_LOAD_EMP_ASSIGN_PKG"
AS
FUNCTION insert_pn_emp_space_assign
RETURN NUMBER
IS
BEGINremove "BEGIN" from line above -
PLS-00103 Error While Creating Procedure
I am attempting to create the following procedure following the guidelines in Metalink Doc ID #118040.1 and I keep receiving the following error at Line #22:
Error(22,65): PLS-00103: Encountered the symbol ":" when expecting one of the following: := . ( % ; The symbol ":= was inserted before ":" to continue.
Here is my procedure code:
PROCEDURE sw_load_image( position IN NUMBER, filename VARCHAR2) AS
f_lob BFILE;
b_lob BLOB;
image_name VARCHAR2(30);
mime_type VARCHAR2(30);
dot_pos NUMBER;
BEGIN
-- Find the position of the dot ('.') located in the filename
dot_pos := INSTR(filename, '.');
-- Get the filename without extension and use it as image name
image_name := SUBSTR(filename,1,dot_pos-1);
-- Build the mime type. Retrieve the file extension and add it to 'image/'
mime_type := 'image/'||SUBSTR( filename, dot_pos+1, length(filename) );
INSERT INTO sw_images values(position, image_name, mime_type, empty_blob() ) RETURN img_data INTO b_lob;
f_lob := BFILENAME('IMG2LOAD', filename);
dbms_lob.fileopen(f_lob, dbms_lob.file_readonly);
dbms_lob.loadfromfile(b_lob, f_lob, dbms_lob.getlength(f_lob) ):
dbms_lob.fileclose(f_lob);
COMMIT;
END;
Line #22 is the line that starts 'dbms_lob.loadfromfile'. I am not seeing where I have made a mistake. Does anyone else see where I've made a mistake?
This procedure is being created on a 9i database running on W2K server and W2K client.
Thanks,
JasonThanks! As many times as I looked at that I can't believe I didn't see that. Thanks again.
-
Error while executing procedure : ORA-06550 and PLS-00103
Hi I have created the Stored Procedure as,
CREATE OR REPLACE PACKAGE BODY APPS.TMP_IMPORT_ITEMS_PKG AS
PROCEDURE LOAD_INTERFACE_TABLE(organization_code IN VARCHAR2, errbuf OUT VARCHAR2, retcode OUT NUMBER) IS
org_code varchar2(3);
BEGIN
org_code:= organization_code;
DBMS_OUTPUT.PUT_LINE('Organization Code is...' || org_code);
END LOAD_TABLE;
END TMP_IMPORT_ITEMS_PKG;
And here is the code what i am trying to execute:
DECLARE
V_ERRBUF VARCHAR2(1000);
V_RETCODE NUMBER;
BEGIN
EXEC TMP_IMPORT_ITEMS_PKG.LOAD_INTERFACE_TABLE('x1', V_ERRBUF, V_RETCODE);
END;
when i run the above code i am getting the following error:
ORA-06550: line 5, column 10:
PLS-00103: Encountered the symbol "TMP_IMPORT_ITEMS_PKG" when expecting one of the following:
:= . ( @ % ;
The symbol ":=" was substituted for "TMP_IMPORT_ITEMS_PKG" to continue.
Can any body tell me what's wrong with the above code
Thanks in Advance,
Kumar K
Edited by: user2054206 on Dec 17, 2008 9:09 PM
Edited by: user2054206 on Dec 17, 2008 9:27 PMBEGIN
EXEC TMP_IMPORT_ITEMS_PKG.LOAD_INTERFACE_TABLE('x1', '', null);
END;why are you executing it like that , it should be
EXEC TMP_IMPORT_ITEMS_PKG.LOAD_INTERFACE_TABLE('x1', '', null);or as Prabhakar said in PL/SQL
BEGIN
TMP_IMPORT_ITEMS_PKG.LOAD_INTERFACE_TABLE('x1', '', null);
END;Edited by: Rajneesh Kumar on Dec 18, 2008 11:08 AM -
PLS-00103: Received error on creation of procedure
Dear All,
I have created view when this procedure i got error.
1. PLS-00103: Encountered the symbol "=" when expecting one of the following:
constant exception <an identifier>
<a double-quoted delimited-identifier> table LONG_ double ref
char time timestam
2. PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
( - + case mod new not null others <an identifier>
<a double-quoted delimited-identifier> <a bind variable> avg
3. PLS-00103: Encountered the symbol ")" when expecting one of the following:
. ( * @ % & - + ; / at for mod remainder rem
<an exponent (**)> and or group having intersect minus order
start uni
create or replace PROCEDURE PO_ITEM_BRANCH_PROC (ITEM_ID1 IN NUMBER, BRANCH_CODE1 IN VARCHAR2 , RESULT1 OUT NUMBER,ERR_MSG OUT NVARCHAR2 )
as
RESULT1 := 0 ;
BEGIN
SELECT
count(a.asset_number) into RESULT1
FROM
FA_ADDITIONS A
,FA_CATEGORIES_VL C
,FA_BOOKS B
,FA_LOCATIONS FL
,FA_DISTRIBUTION_HISTORY DH
,FA_TRANSACTION_HEADERS TH
WHERE
A.ASSET_CATEGORY_ID=C.CATEGORY_ID
AND A.ASSET_ID=B.ASSET_ID
AND A.ASSET_ID=TH.ASSET_ID
AND TH.TRANSACTION_TYPE_CODE='ADDITION'
AND B.TRANSACTION_HEADER_ID_IN=TH.TRANSACTION_HEADER_ID
AND B.ASSET_ID=TH.ASSET_ID
AND A.ASSET_ID=DH.ASSET_ID
AND DH.LOCATION_ID=FL.LOCATION_ID
AND TH.TRANSACTION_TYPE_CODE='ADDITION'
--AND FL.SEGMENT4 = 'Shalimar Campus Lahore'
AND TH.TRANSACTION_TYPE_CODE <> 'FULL RETIREMENT'
-- AND FL.SEGMENT4 = (SELECT flex_value FROM fnd_flex_values WHERE ATTRIBUTE1 = '04010303')
AND A.ASSET_CATEGORY_ID IN (
SELECT
msi.asset_category_id
FROM
po_requisition_lines_all b,
mtl_system_items_b msi
WHERE
b.ITEM_ID = msi.INVENTORY_ITEM_ID
AND msi.inventory_item_id(+) = B.item_id
AND msi.organization_id(+) = B.destination_organization_id
AND b.item_id = ITEM_ID
AND FL.SEGMENT4 = (
SELECT
(SELECT FLEX_VALUE FROM fnd_flex_values WHERE ATTRIBUTE1 = B.ATTRIBUTE2) BRANCH
FROM
po_requisition_lines_all b,
mtl_system_items_b msi
WHERE
b.ITEM_ID = msi.INVENTORY_ITEM_ID
AND msi.inventory_item_id(+) = B.item_id
AND msi.organization_id(+) = B.destination_organization_id
AND b.ATTRIBUTE2 = BRANCH_CODE
exception when others then
mesg := 'select failed in BILLTER' ;
err_msg :=mesg;
END ;create or replace PROCEDURE PO_ITEM_BRANCH_PROC(ITEM_ID1 IN NUMBER,
BRANCH_CODE1 IN VARCHAR2,
RESULT1 OUT NUMBER,
ERR_MSG OUT NVARCHAR2
) as
BEGIN
RESULT1 := 0 ;
SELECT count(a.asset_number)
into RESULT1
FROM FA_ADDITIONS A,
FA_CATEGORIES_VL C,
FA_BOOKS B,
FA_LOCATIONS FL,
FA_DISTRIBUTION_HISTORY DH,
FA_TRANSACTION_HEADERS TH
WHERE A.ASSET_CATEGORY_ID = C.CATEGORY_ID
AND A.ASSET_ID = B.ASSET_ID
AND A.ASSET_ID = TH.ASSET_ID
AND TH.TRANSACTION_TYPE_CODE = 'ADDITION'
AND B.TRANSACTION_HEADER_ID_IN = TH.TRANSACTION_HEADER_ID
AND B.ASSET_ID = TH.ASSET_ID
AND A.ASSET_ID = DH.ASSET_ID
AND DH.LOCATION_ID = FL.LOCATION_ID
AND TH.TRANSACTION_TYPE_CODE = 'ADDITION'
-- AND FL.SEGMENT4 = 'Shalimar Campus Lahore'
AND TH.TRANSACTION_TYPE_CODE != 'FULL RETIREMENT'
-- AND FL.SEGMENT4 = (SELECT flex_value FROM fnd_flex_values WHERE ATTRIBUTE1 = '04010303')
AND A.ASSET_CATEGORY_ID IN (SELECT msi.asset_category_id
FROM po_requisition_lines_all b,
mtl_system_items_b msi
WHERE b.ITEM_ID = msi.INVENTORY_ITEM_ID
AND msi.inventory_item_id(+) = B.item_id
AND msi.organization_id(+) = B.destination_organization_id
AND b.item_id = ITEM_ID
AND FL.SEGMENT4 = (SELECT (SELECT FLEX_VALUE
FROM fnd_flex_values
WHERE ATTRIBUTE1 = B.ATTRIBUTE2
) BRANCH
FROM po_requisition_lines_all b,
mtl_system_items_b msi
WHERE b.ITEM_ID = msi.INVENTORY_ITEM_ID
AND msi.inventory_item_id(+) = B.item_id
AND msi.organization_id(+) = B.destination_organization_id
AND b.ATTRIBUTE2 = BRANCH_CODE
exception
when others
then err_msg := 'select failed in BILLTER';
END ;Regards
Etbin
Edited by: Etbin on 21.4.2012 11:26
sorry
Edited by: Etbin on 21.4.2012 12:02
reposted -
Hard coded SQL string doesn't run with error PLS-00103
I have created a package with 34 stored procedures [pre]to create some materialized view with hard coded SQL [pre]string (client required for this hard coding). The [pre]first part with 21 simple create statements has
[pre]worked fine. 2nd part with 11 complicated create [pre]statements, only first one has worked. all others [pre]have not worked.
[pre]
I used dbms_output.put_line (sql_string) to check the [pre]individual create statement, it has looked fine. I [pre]have run individual SP within package. I have got [pre]error message as ORA-06550: line 1, column 45:
[pre]PLS-00103: Encountered the symbol "end-of-file" when [pre]expecting one of the following: ; [pre]
<an identifier> <a double-quoted delimited-identifier> [pre]The symbol ";" was substituted for "end-of-file" to [pre]continue.
[pre]I have checked SQL string between 1st part and 2nd [pre]part. They are the same and all with ';' to end SQL [pre]string and END SP name in the end. Please help me to [pre]identify where the problems are. Thanks. Followings [pre]are some sample SQL string:
[pre]PROCEDURE sp_1st_string
[pre]IS
[pre]BEGIN
[pre] EXECUTE IMMEDIATE 'CREATE MATERIALIZED VIEW
[pre]mv_name1 TABLESPACE space_name PARALLEL ( DEGREE [pre]DEFAULT INSTANCES DEFAULT ) BUILD IMMEDIATE REFRESH [pre]COMPLETE ON DEMAND WITH PRIMARY KEY AS SELECT col1, [pre]col2,col3, col4, col5 FROM tableone A, table_two B [pre]WHERE A.id = B.id';
[pre]COMMIT;
[pre]END sp_1st_string;
[pre]PROCEDURE sp_2nd_string
[pre]IS
[pre]BEGIN
[pre] EXECUTE IMMEDIATE ' CREATE MATERIALIZED VIEW
[pre]mv_name2 TABLESPACE PDE_DATA PARALLEL ( DEGREE [pre]DEFAULT INSTANCES DEFAULT ) BUILD IMMEDIATE REFRESH [pre]COMPLETE ON DEMAND WITH PRIMARY KEY AS select col1 .. [pre]col10 from tableone a, tabletwo b, tablethree c, [pre]tablefour d, tablefive e, tablesix f where clause;
[pre]COMMIT;
[pre]END sp_2nd_string;
Message was edited by:
citicbj
Message was edited by:
citicbjstevencallan:
Thanks for your advice. I have been thinking the above problem may be [pre]caused by this. If I run 'Create MV statement' in SQL PLUS or Toad, single quote [pre]will work. But when I put hard coded SQL string in package and stored [pre]procedure, it will cause compiling error. After I took off single quote, SP will be [pre][pre]compiled successfully. When I run package.sp, it will cause the problem. [pre]Here is the sample code:[pre]
[pre]CREATE MATERIALIZED VIEW my_mv TABLESPACE space_name [pre][pre]PARALLEL (DEGREE DEFAULT INSTANCES DEFAULT) BUILD IMMEDIATE [pre]REFRESH COMPLETE ON DEMAND WITH PRIMARY KEY AS select A.ID , [pre]A.CNTL_NUM, C.XX_CODE, D.FIRST_NAME, D.MDL_NAME, [pre]D.LAST_NAME, H.XX_DESC, TO_DATE(TO_CHAR(C.CREAT_TS, [pre]'MM/DD/YYYY'),'MM/DD/YY'), F.STATE, CASE WHEN A.XX_CODE IS NOT NULL [pre]THEN X END, E.X_DESC from TABLE1 A, TABLE2 B, TABLE3 C, TABLE4 [pre]D, TABLE5 E, TABLE6 F, TABLE7 G, TABLE8 H
[pre]where D.X_SW = 'X' and B.X_SW = X' and G.X_SW = 'X' and B.CNTL_ID = [pre]A.CNTL_ID and B.CNTL_ID = D.CNTL_ID and B.X_ID = C.X_ID and B.X_ID = [pre]G.X_ID and B.X_ID = F.X_ID and G.X_CD = H.X_CD and B.X_CD = E.X_CD [pre]and E.X_CD = '25' and C.ENRLMT_ID NOT LIKE 'O%'; [pre]
[pre]When I hard coded this statement in package and sp, I have to take off single [pre]quote ' ' form 'MM/DD/YYYY', 'MM/DD/YY', X_SW ='X', X_CD = '25' AND NOT [pre]LIKE 'O%', Then I can compile whole package successfully. This is why I [pre]mentioned that 1st part 21 simple create statement work because they don't have [pre]these single quote in the statement. In 2nd part with 13 complicated create [pre]statements, some of them have no single quote in the statement. They will [pre]run. Some of them with single quote in statement. They will have the problem [pre]to run if I take off single for compiling. [pre]
[pre]Please give me some idea what is the reason. Thanks a lot.
Maybe you are looking for
-
Web pages are taking an extremely long time to load. Sometimes they don't load at all. This is especially true with video sites like YouTube. I scanned my entire computer with Ad-Aware, Malwarebytes, Iobit Malware Fighter, SuperAntiSpyware, Windows D
-
Why I cannot read my file???
I write an applet to read a file in another directory... But every time I run the applet, it gives me this exception.. Java.security.AccessControlException :access denied (java.io.FilePermission C:/product development/con/app.ini read) Wat did I went
-
ODTwithODAC10202.exe and ODAC10202.exe Installation Error
OS: Windows 2000 Advanced Server(zh_cn) Steps: cd install setup.exe Oracle Universal Installer Welcome Screen Next Select [Oracle Data Access Components 10.2.0.2.20] Next Use Default Name & Dir Path Next Oralce Universal Installer CRASH, without any
-
Oracle Workflow Builder in HRMS
Hi, I have Installed Oracle EBS R12 on WindowsXp.....Now My Questions is Do i need to Again Install Workflow Builder externally....Then Please provide me steps.....I dont have CSI number Or If it internally installed ...then please give me the link t
-
Error 1603 when installing Rollup 4 for Exchange 2010 SP2
Hi There, I have began upgrading our Exchange servers to Rollup 4 for Exchange 2010 SP2 last week and the first 3 servers all successfully installed it without any problems. However I have hit a problem with my 4th server. I am receiving the 'common