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

  • PLS-00103 error

    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,
    Jason

    Thanks! 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:
            citicbj                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    stevencallan:
    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 PM

    BEGIN
    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 query

    something 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

  • PL/SQL Error  PLS-00103

    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 trying

    I 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

  • Where is the actual support for Adobe business Catalyst? Why can't I just phone someone like other software companies?

    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

  • External Floppy Disk Drivers

    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

  • UWL Item URL Links

    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