Bug causing PLS-00103 error
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.
Similar Messages
-
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.
-
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. -
Error ORA-06550, PLS-00103 in procedure launched by php page
Hi,
I have written a php page that calls a pl/sql procedure. When I launch the procedure (through the php) I receive this error
Warning: ociexecute(): OCIStmtExecute: ORA-06550: line 1, column 101: PLS-00103: Encountered the symbol "" 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 specifi in /web/findb/php/fin/SPR/nuoveEmissioni/nuoveEmissioni.class.php on line 918
bool(false) The php code that calls the procedure is the following:
$query = " declare retU number; begin ";
$query .= " retU := pkg_schedapr.UPDATE_SPR_STATUS( :isinU, :utente, :emissione_f,
:azione_f, :fondo_f, :emittenteU_f, :rischioU_f, :varU_f,
:formulaU_f, :profiloU_f); ";
$query .= ":retU_val := retU; ";
$query .= "end;";
$stmtUpdate = ociparse ($this->conn,$query);
if (!$stmtUpdate) die (var_dump(OCIError()));
ociBindByName($stmtUpdate, ":isinU", $isin_t, 12);
ociBindByName($stmtUpdate, ":utente", $userName, 20);
ociBindByName($stmtUpdate, ":emissione_f", $mod_bond, 1);
ociBindByName($stmtUpdate, ":azione_f", $mod_azione, 1);
ociBindByName($stmtUpdate, ":fondo_f", $mod_fondo, 1);
ociBindByName($stmtUpdate, ":emittenteU_f", $mod_emittente, 1);
ociBindByName($stmtUpdate, ":rischioU_f", $mod_rischio, 1);
ociBindByName($stmtUpdate, ":varU_f", $mod_var, 1);
ociBindByName($stmtUpdate, ":formulaU_f", $mod_formula, 1);
ociBindByName($stmtUpdate, ":profiloU_f", $mod_profilo, 1);
ociBindByName($stmtUpdate, ":retU_val", $retU_val, 1);
$err=OCIExecute($stmtUpdate);
if (!$err) die (var_dump(OCIError()));
ocifreestatement($stmtUpdate); The pl/sql procedure is the following:
function UPDATE_SPR_STATUS(isin_p in varchar2, utente in varchar2, mercato in varchar2,
emissione_p in number, azione_p in number, fondo_p in number, emittente_p in number,
rischio_p in number, var_p in number, formula_p in number, mercato_p in number,
profilo_p in number) return number
is
control number;
modificato number;
SQL_QUERY VARCHAR2(4000);
TYPE MOD_SUM IS REF CURSOR;
SUMM MOD_SUM;
TYPE MOD_SUM_ROW
IS RECORD(
EMISSIONE VARCHAR2(1),
AZIONE VARCHAR2(1),
FONDO VARCHAR2(1),
EMITTENTE VARCHAR2(1),
RISCHIO VARCHAR2(1),
VAR VARCHAR2(1),
FORMULA VARCHAR2(1),
PROFILO VARCHAR2(1)
MODIFICHE MOD_SUM_ROW;
EMS VARCHAR2(1);
AZI VARCHAR2(1);
FON VARCHAR2(1);
EMT VARCHAR2(1);
RSK VARCHAR2(1);
VAR VARCHAR2(1);
FRM VARCHAR2(1);
PRF VARCHAR2(1);
MKT VARCHAR(1);
begin
modificato := emissione_p + azione_p + fondo_p + emittente_p + rischio_p
+ var_p + formula_p + mercato_p + profilo_p;
select count(*)
into control
from spr_web_nuove_emissioni a
where a.ISIN=isin_p
AND A.END_DATE IS NULL;
if control > 0
then
update spr_web_nuove_emissioni a
set a.END_DATE=sysdate
where a.ISIN=isin_p
AND A.END_DATE IS NULL;
SQL_QUERY := 'SELECT A.EMISSIONE, A.AZIONE, A.FONDO, A.EMITTENTE,
A.RISCHIO, A.VAR, A.FORMULA,
A.PROFILO
FROM SPR_WEB_NUOVE_EMISSIONI A
WHERE A.ISIN='''||isin_p||' AND A.END_DATE=TRUNC(SYSDATE)';
OPEN SUMM FOR SQL_QUERY;
LOOP
FETCH SUMM INTO MODIFICHE;
EXIT WHEN SUMM%NOTFOUND;
if emissione_p < 1 THEN
EMS := MODIFICHE.EMISSIONE;
ELSE
EMS := 'Y';
end if;
if azione_p < 1 THEN
AZI := MODIFICHE.AZIONE;
ELSE
AZI := 'Y';
end if;
if fondo_p < 1 THEN
FON := MODIFICHE.FONDO;
ELSE
FON := 'Y';
end if;
if emittente_p < 1 THEN
EMT := MODIFICHE.EMITTENTE;
ELSE
EMT := 'Y';
end if;
if rischio_p < 1 THEN
RSK := MODIFICHE.RISCHIO;
ELSE
RSK := 'Y';
end if;
if var_p < 1 THEN
VAR := MODIFICHE.VAR;
ELSE
VAR := 'Y';
end if;
if formula_p < 1 THEN
FRM := MODIFICHE.FORMULA;
ELSE
FRM := 'Y';
end if;
if profilo_p < 1 THEN
PRF := MODIFICHE.PROFILO;
ELSE
PRF := 'Y';
end if;
END LOOP;
CLOSE SUMM;
ELSE
if emissione_p < 1 THEN
EMS := 'N';
ELSE
EMS := 'Y';
end if;
if azione_p < 1 THEN
AZI := 'N';
ELSE
AZI := 'Y';
end if;
if fondo_p < 1 THEN
FON := 'N';
ELSE
FON := 'Y';
end if;
if emittente_p < 1 THEN
EMT := 'N';
ELSE
EMT := 'Y';
end if;
if rischio_p < 1 THEN
RSK := 'N';
ELSE
RSK := 'Y';
end if;
if var_p < 1 THEN
VAR := 'N';
ELSE
VAR := 'Y';
end if;
if formula_p < 1 THEN
FRM := 'N';
ELSE
FRM := 'Y';
end if;
if profilo_p < 1 THEN
PRF := 'N';
ELSE
PRF := 'Y';
end if;
end if;
insert into spr_web_nuove_emissioni
values (isin_p, sysdate, utente, EMS, AZI, FON, EMT,
RSK, VAR, FRM, PRF,
SYSDATE, NULL);
begin
update spr_status a
set a.VALIDATED='Y'
where a.ISIN=isin_p
AND A.MARKET=mercato;
if modificato > 0
then
update spr_status a
set a.USER_CHANGE='Y', a.USER_LAST_MODIFIED=sysdate
where a.ISIN=isin_p and a.MARKET=mercato;
end if;
exception
when others then
dbms_output.put_line('ERROR in <PKG_SCHEDAPR.UPDATE_SPR_STATUS> Aggiornamento stato ' ||SQLCODE||'-'||SQLERRM);
return 1;
end;
commit;
return 0;
end UPDATE_SPR_STATUS;I do not succed to understand the error I receive, why? Where is the error?
Can someone help me?
Thanks, bye bye.Hi,
I have changed the php code in this way:
$query = " declare retU number; begin ";
$query .= " retU := pkg_schedapr.UPDATE_SPR_STATUS(:isinU, :utente, :emissione_f, ";
$query .= ":azione_f, :fondo_f, :emittenteU_f, :rischioU_f, :varU_f, ";
$query .= ":formulaU_f, :profiloU_f); ";
$query .= ":retU_val := retU; ";
$query .= "end;";
$stmtUpdate = ociparse ($this->conn,$query);
if (!$stmtUpdate) die (var_dump(OCIError()));
ociBindByName($stmtUpdate, ":isinU", $isin_t, 12);
ociBindByName($stmtUpdate, ":utente", $userName, 20);
ociBindByName($stmtUpdate, ":emissione_f", $mod_bond, 1);
ociBindByName($stmtUpdate, ":azione_f", $mod_azione, 1);
ociBindByName($stmtUpdate, ":fondo_f", $mod_fondo, 1);
ociBindByName($stmtUpdate, ":emittenteU_f", $mod_emittente, 1);
ociBindByName($stmtUpdate, ":rischioU_f", $mod_rischio, 1);
ociBindByName($stmtUpdate, ":varU_f", $mod_var, 1);
ociBindByName($stmtUpdate, ":formulaU_f", $mod_formula, 1);
ociBindByName($stmtUpdate, ":profiloU_f", $mod_profilo, 1);
ociBindByName($stmtUpdate, ":retU_val", $retU_val, 1);
echo "$isin_t--";echo "$userName--"; echo"$mod_bond--";
echo "$mod_azione--";echo "$mod_fondo--"; echo"$mod_emittente--";
echo "$mod_rischio--";echo "$mod_var--"; echo"$mod_formula--";
echo "$mod_profilo--";echo "$retU_val";
echo "$query";
$err=OCIExecute($stmtUpdate);
if (!$err) die (var_dump(OCIError()));
ocifreestatement($stmtUpdate); and now I receive this error:
Warning: ociexecute(): OCIStmtExecute: ORA-01756: quoted string not properly terminated ORA-06512: at "FIN.PKG_SCHEDAPR", line 6420 ORA-06512: at line 1 in /web/findb/php/fin/SPR/nuoveEmissioni/nuoveEmissioni.class.php on line 918
bool(false) But I do not understand the cause of the error.
How can I solve?
Thanks, bye bye. -
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.
-
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 -
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 -
Hi All,
I am currently working a "package header" and "package body".
I have created a user defined data type ( record type ) in pl/sql pacakge header.
And I am trying to use it from pl/sql body, especially
I am using this type as parameter type for a procedure.
Because of this I am getting below error at the time
of compilation.
LINE/COL ERROR
2/3 PLS-00103: Encountered the symbol "CREATE" when expecting one of
the following:
begin end function package pragma procedure subtype type use
<an identifier> <a double-quoted delimited-identifier> form
current cursor
The symbol "CREATE" was ignored.
Can any one guide me on this...
Thanks in advance.
Regards,
Srini
, from body
I was tryingI was able to get rid of the problem by creating header
and body of the package with two different names.
Example: ph and pb
But for my curiosity , just like to know,
Both "Package Header" and "Package Body" must be defined
with two different names ?
Is there any other way to get rid of this exception ?
Thanks in advance.
Cheers,
Srini -
Error PLS-00103 in cursor in operation insert in a particioned table
Hi experts,
I 've just insert in a particioned table values with next cursor and give an error:
ERROR:
SQL> @/home/u0182638/mfp_sql/2_cursores.sql
insert into sales values
(reg.SAT_ID,reg.SAC_ID,reg.SCR_ID,reg.UCR_ID,reg.SAT_PARENTMOVID,reg.SAT_USE
RCATEGORYID,reg.SAT_DTPOSTED,reg.SAT_DTAVAIL,reg.SAT_NAME,reg.SAT_TRNAMT,reg
.SAT_CURRENCY,reg.SAT_ORIGIN,reg.SAT_COMMENT,reg.SAT_DTIMPORT,reg.IMF_ID,reg
.CLOB_ID,reg.SUBCLOB_ID,reg.HIDDEN );
ERROR at line 8:
ORA-06550: line 8, column 5:
PLS-00103: Encountered the symbol "INSERT" when expecting one of the
following:
. ( * @ % & - + / at loop mod remainder range rem ..
<an exponent (**)> || multiset
The symbol "loop" was substituted for "INSERT" to continue.
ORA-06550: line 15, column 9:
PLS-00103: Encountered the symbol "IF" when expecting one of the following:
; <an identifier> <a double-quoted delimited-identifier>
end if;
ERROR at line 15:
ORA-06550: line 15, column 9:
PLS-00103: Encountered the symbol "IF" when expecting one of the following:
; <an identifier> <a double-quoted delimited-identifier>
**CURSOR:**
set serveroutput on;
declare
limite number:= 200000;
contador number:= 0;
cursor c_SAVING_ACCOUNT_TRANS_P is
select
SAT_ID,SAC_ID,SCR_ID,UCR_ID,SAT_PARENTMOVID,SAT_USERCATEGORYID,SAT_DTPOSTED,
SAT_DTAVAIL,SAT_NAME,SAT_TRNAMT,SAT_CURRENCY,SAT_ORIGIN,SAT_COMMENT,SAT_DTIM
PORT,IMF_ID,CLOB_ID,SUBCLOB_ID,HIDDEN from
IBD_MFP.SAVING_ACCOUNT_TRANSACTIONS_P;
begin
for reg in c_SAVING_ACCOUNT_TRANS_P
insert into sales values
(reg.SAT_ID,reg.SAC_ID,reg.SCR_ID,reg.UCR_ID,reg.SAT_PARENTMOVID,reg.SAT_USE
RCATEGORYID,reg.SAT_DTPOSTED,reg.SAT_DTAVAIL,reg.SAT_NAME,reg.SAT_TRNAMT,reg
.SAT_CURRENCY,reg.SAT_ORIGIN,reg.SAT_COMMENT,reg.SAT_DTIMPORT,reg.IMF_ID,reg
.CLOB_ID,reg.SUBCLOB_ID,reg.HIDDEN );
contador:= contador +1;
if contador > limite then
begin
commit;
contador:= 0;
dbms_output.put_line('otros '|| limite ||' registros...');
end if;
end loop;
end;
TABLE:
CREATE TABLE IBD_MFP.SAVING_ACCOUNT_TRANSACTIONS_PART
SAT_ID NUMBER NOT NULL,
SAC_ID NUMBER NOT NULL,
SCR_ID NUMBER,
UCR_ID NUMBER,
SAT_PARENTMOVID NUMBER,
SAT_USERCATEGORYID NUMBER,
SAT_DTPOSTED DATE NOT NULL,
SAT_DTAVAIL DATE NOT NULL,
SAT_NAME VARCHAR2(512 BYTE) NOT NULL,
SAT_TRNAMT VARCHAR2(32 BYTE) NOT NULL,
SAT_CURRENCY VARCHAR2(3 BYTE) NOT NULL,
SAT_ORIGIN NUMBER(1) DEFAULT 0 NOT NULL,
SAT_COMMENT VARCHAR2(1000 BYTE),
SAT_DTIMPORT DATE,
IMF_ID NUMBER,
CLOB_ID NUMBER,
SUBCLOB_ID NUMBER,
HIDDEN NUMBER(1) DEFAULT 0
PCTUSED 0
PCTFREE 30
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 256MB
NEXT 256MB
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
PARTITION BY RANGE (SAT_DTPOSTED)
( PARTITION SAT_DTPOSTED_ENE00 VALUES LESS THAN (TO_DATE('01/02/2000', 'DD/MM/YYYY')) TABLESPACE TABLESPACE_NUEVO,
PARTITION SAT_DTPOSTED_FEB00 VALUES LESS THAN (TO_DATE('01/03/2000', 'DD/MM/YYYY')) TABLESPACE TABLESPACE_NUEVO,
NOLOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;you are missing an END;
in this part
if contador > limite then
begin
commit;
contador:= 0;
dbms_output.put_line('otros '|| limite ||' registros...');
end if; -
How can I correct this error: Error(24,7): PLS-00103:
I have the following Trigger
create or replace
TRIGGER "CODE_BARRAS"
before insert or update of CODIGO_BARRAS on PAGOS FOR EACH ROW
begin
IF INSERTING THEN
IF LENGTH(:NEW.CODIGO_BARRAS) = 66 THEN
:NEW.EAN := SUBSTR(:NEW.CODIGO_BARRAS, 4,13);
:NEW.CODIGO_CUENTA := SUBSTR(:NEW.CODIGO_BARRAS, 21,22);
:NEW.NRO_DOCUMENTO := 0;
:NEW.VALOR_PAGO := SUBSTR(:NEW.CODIGO_BARRAS, 47,10);
:NEW.FECHA_PAGO := TO_CHAR(SYSDATE,'YYYYMMDD');
:NEW.NUM_LOTE := NUM_LOTE();
ELSIF LENGTH(:NEW.CODIGO_BARRAS) = 62 THEN
:NEW.EAN := SUBSTR(:NEW.CODIGO_BARRAS, 4,13);
:NEW.CODIGO_CUENTA := SUBSTR(:NEW.CODIGO_BARRAS, 21,9);
:NEW.NRO_DOCUMENTO := SUBSTR(:NEW.CODIGO_BARRAS, 30,9);
:NEW.VALOR_PAGO := SUBSTR(:NEW.CODIGO_BARRAS, 43,10);
:NEW.FECHA_PAGO := TO_CHAR(SYSDATE,'YYYYMMDD');
:NEW.NUM_LOTE := NUM_LOTE();
END IF;
END IF;
END IF;
EXCEPTION
when no_data_found then
DBMS_OUTPUT.PUT_LINE(' NO HAY INFORMACION, CODIGO ERRADO');
end;
Which generates the following error me
Error(24,7): PLS-00103: Se ha encontrado el símbolo "IF" cuando se esperaba uno de los siguientes: ; <an identifier> <a double-quoted delimited-identifier>
how do I correct the tigger?_
I am grateful for your help..._Hi Rey-user6318244!
You may delete the last END IF; to correct your trigger
create or replace
TRIGGER "CODE_BARRAS"
before insert or update of CODIGO_BARRAS on PAGOS FOR EACH ROW
begin
IF INSERTING THEN
IF LENGTH(:NEW.CODIGO_BARRAS) = 66 THEN
:NEW.EAN := SUBSTR(:NEW.CODIGO_BARRAS, 4,13);
:NEW.CODIGO_CUENTA := SUBSTR(:NEW.CODIGO_BARRAS, 21,22);
:NEW.NRO_DOCUMENTO := 0;
:NEW.VALOR_PAGO := SUBSTR(:NEW.CODIGO_BARRAS, 47,10);
:NEW.FECHA_PAGO := TO_CHAR(SYSDATE,'YYYYMMDD');
:NEW.NUM_LOTE := NUM_LOTE();
ELSIF LENGTH(:NEW.CODIGO_BARRAS) = 62 THEN
:NEW.EAN := SUBSTR(:NEW.CODIGO_BARRAS, 4,13);
:NEW.CODIGO_CUENTA := SUBSTR(:NEW.CODIGO_BARRAS, 21,9);
:NEW.NRO_DOCUMENTO := SUBSTR(:NEW.CODIGO_BARRAS, 30,9);
:NEW.VALOR_PAGO := SUBSTR(:NEW.CODIGO_BARRAS, 43,10);
:NEW.FECHA_PAGO := TO_CHAR(SYSDATE,'YYYYMMDD');
:NEW.NUM_LOTE := NUM_LOTE();
END IF;
END IF;
EXCEPTION
when no_data_found then
DBMS_OUTPUT.PUT_LINE(' NO HAY INFORMACION, CODIGO ERRADO');
end;yours sincerely
Florian W.
P.S. Please enclose your code into to get formated output. Thanks a lot!
Edited by: Florian W. on 23.02.2009 16:02 -
PL/SQL Explicit Cursors,Error(3,15): PLS-00103
I creat procedure as following:
PROCEDURE Proj_Using_Most_People_ByGender (TheGender Employee.Sex%Type)
IS
ProjIdWorks_On.Pno%TYPE;
ProjCnt number;
CURSOR Get_People_Involved(Gender IN Employee.Sex%Type)
IS
select w.Pno, count(*) as TotalPeople
from Works_On w, Employee e
where e.Sex = Gender
and e.Ssn = w.Essn
group by w.Pno
order by TotalPeople desc;
BEGIN
open Get_People_Involved(TheGender);
for i in 1..3 loop
fetch Get_People_Involved into ProjId, ProjCnt;
exit when Get_People_Involved%NOTFOUND;
dbms_output.put_line (' Project: ' || to_char(ProjId) ||
' Personnel: ' || to_char(ProjCnt) );
end loop;
close Get_People_Involved;
EXCEPTION
when others then
dbms_output.PUT_LINE ( 'Problems' );
END;
error is:
Error(3,15): 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 timestamp interval date binary national character nchar The symbol "<an identifier>" was substituted for "." to continue.
Anybody can help me? Thanks a lot!I didn't see a problem - except you should have
CREATE OR REPLACE PROCEDURE ... and not just PROCEDURE ...
SQL> create or replace PROCEDURE explitpro (TheGender Employee.Sex%Type) IS
2 ProjId Works_On.Pno%TYPE;
3 ProjCnt number;
4 CURSOR Get_People_Involved(Gender IN Employee.Sex%Type) IS
5 select w.Pno, count(*) as TotalPeople
6 from Works_On w, Employee e
7 where e.Sex = Gender
8 and e.Ssn = w.Essn
9 group by w.Pno
10 order by TotalPeople desc;
11 BEGIN
12 open Get_People_Involved(TheGender);
13 for i in 1..3 loop
14 fetch Get_People_Involved into ProjId, ProjCnt;
15 exit when Get_People_Involved%NOTFOUND;
16 dbms_output.put_line (' Project: ' || to_char(ProjId) ||
17 ' Personnel: ' || to_char(ProjCnt) );
18 end loop;
19 close Get_People_Involved;
20 EXCEPTION
21 when others then
22 dbms_output.PUT_LINE ( 'Problems' );
23 END;
24 /
Procedure created.
SQL> EXECUTE EXPLITPRO('F')
PL/SQL procedure successfully completed. -
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 -
Getting pls-00428 error.
Hi all,
I'm trying to fix some invalid objects in our 11g database and i'm getting a pls-00428 error. Not sure where the issue is originating at (keep in mind, my IT team and I are not thoroughly experienced with 11g, so I apologize if this sounds a little too newbie-ish)
Here's the plsql:
create or replace
FUNCTION detail_cogs (
sSKU varchar2
--,dtFrom date := sysdate
return number
is
nRetval number;
begin
select *
--SUM(cost * ieqty) into nRetval
from (
select
ie.qty ieqty
,ie.part
,ic.validdate
,ic.cost
,LAG(validdate) OVER (partition by ic.part order by validdate desc) prev_entry_time
from
oracle2_partexplosion_mv ie
,oracle2_itemcogs_mv ic
where
ie.sku = sSKU
and ic.part = ie.part
and ic.validdate <= sysdate
order by part, validdate desc
where
prev_entry_time is null;
return nRetval;
exception
when others then
return null;
end;Welcome to the forum.
Reading the documentation will save you:
PLS-00428: an INTO clause is expected in this SELECT statement
Cause: The INTO clause of a SELECT INTO statement was omitted. For example, the code might look like SELECT deptno, dname, loc FROM dept WHERE ... instead of SELECT deptno, dname, loc INTO dept_rec FROM dept WHERE ... In PL/SQL, only a subquery is written without an INTO clause.
http://download.oracle.com/docs/cd/E11882_01/server.112/e10880/pcmus.htm#sthref17855
http://www.oracle.com/pls/db112/search?word=select+into&partno=e10472
Doc home: http://www.oracle.com/pls/db112/homepage
And please change or remove this part from your code anyway, since it's nothing but a bug:
exception
when others then
return null;11g compiler warned you already about that, I may hope...
Maybe you are looking for
-
I am concerned by the 'non help' , customer service platitudes available to me as a customer. I was left 3 minutes to go through auto call filtration to be told that there is no-one to speak to. I am a new customer, clearly I have a different view of
-
Hi all, Can anyone tell me if I buy and external floppy disk drive - compatible with Mac... will it transfer photos to my Mac if the floppy were created on a Windows computer? -or- If I put the floppy disk photos on a CD-R using a Windows computer...
-
DUMP IN CALL FUNCTION 'HR_INFOTYPE_OPERATION' FROM Z FUNCTION (SE37)
Hello guys! I am executing this function and having this dump: Short text of error message: Chamada encaixada de PERFORM ON COMMIT: NESTED_PERFORM_ SAPLBUPA_BADI_CALL program: SAPLBUPA_BADI_CALL form: B Technical information about the message: M
-
Maintenance Plan - Multiple Frequencies
Hey, I need to create a Maintenance Plan with multiple items and multiple frequencies. Is this possible ie. 1 x Maintenance Plan 2 x Items Item 1 - 2months Item 2 - 6monhths. What I want is for the 2 monthly to come out twice and then when the 6 mon
-
Hello Experts, I have created a Webdynpro application in which i have the UWK Items. I am able to read all the properties of the items. But I don't know how to create the URL for the specific ITEMS, to open the item, when clicked. Can you please pro