PLS-00323 forward declaration in PLSQL Version 10.

Hello.
I have a package which contains forward references which compiles on a 9i database.
However, when I try to compile an exact copy of the procedure on a 10g database it returns an error
"PLS-00323: subprogram or cursor 'P_PA_ACTION_START' is declared in a package specification and must be defined in the package body"
I was wondering if there were any differences in the rules concerning forward references in pl/sql 10.
Thanks in advance.
Glyn Williams.

Hello.
I have a package which contains forward references which compiles on a 9i database.
However, when I try to compile an exact copy of the procedure on a 10g database it returns an error
"PLS-00323: subprogram or cursor 'P_PA_ACTION_START' is declared in a package specification and must be defined in the package body"
I was wondering if there were any differences in the rules concerning forward references in pl/sql 10.
Thanks in advance.
Glyn Williams.

Similar Messages

  • I have the PLS-00323 but ..I am getting it

    Ok here is the declaration in the the package header..
    FUNCTION fn_populate_rgns_from_national(fv_sales_force_no IN
    tsales_force.sales_force_no%TYPE
    ,fv_budget_no IN tbudget_plan.budget_no%TYPE) RETURN VARCHAR2;
    ....now here is the package body ...
    Function fn_populate_rgns_from_national(fv_sales_force_no IN
    tslaes_force.sales_force%TYPE ,
    fv_budget_no IN tbudget_plan.budget_no%type) RETURN VARCHAR2 IS
    BEgin
    < yada > <yada>
    ENd ;
    As far as I can tell...the declaration is the same in the
    package header and body...then why the heck, I am getting the
    PLS-0323 error :
    LINE/COL ERROR
    5/10 PLS-00323: subprogram or
    cursor 'FN_POPULATE_RGNS_FROM_NATIONAL'
    is declared in a package specification and must be
    defined in the
    package body
    I am at my wits end..

    its typing mistake...
    package specification
    fv_sales_force_no IN tsales_force.sales_force_no%TYPE
    package body :
    fv_sales_force_no IN tslaes_force.sales_force%TYPE ,
    _no is missing in package body.. make changes to either
    package body or specification and run it. its not oracle bug,
    human mistake.

  • PLS-00323: subprogram or cursor... really wierd

    I'm not sure where I'm causing this error, here is the pkg spec & body... but if i remove v_end_date from spec & body, then this pkg compiles fine...
    Here is the error message:
    PLS-00323: subprogram or cursor 'my_fn' is
    declared in a package specification and must be defined in the
    package body
    Package Spec
    CREATE OR REPLACE PACKAGE Pkg_Rep IS
    FUNCTION my_fn ( v_app_id IN NUMBER, v_report_no IN NUMBER, v_prop_id IN NUMBER, v_start_dt IN DATE, v_end_dt IN DATE) RETURN number;
    END Pkg_Rep;
    Package Body
    CREATE OR REPLACE PACKAGE BODY Pkg_Rep AS
    FUNCTION my_fn ( v_app_id IN NUMBER, v_report_no IN NUMBER, v_prop_id IN NUMBER, v_start_dt IN DATE, v_end_date IN DATE)
    RETURN number IS
    BEGIN
    END my_fn;
    END Pkg_Rep;
    /

    The signature of the function must be identical, including the name of the parameters.

  • PLS-00320: the declaration of the type of this expression is incomplete or malformed

    hello my friend please help
    I have this Error in PL /SQL procedure
    ORA-06550: line 6, column 12:
    PLS-00320: the declaration of the type of this expression is incomplete or malformed
    ORA-06550: line 6, column 12:
    PL/SQL: Item ignored
    where this is my procedure
    CREATE OR REPLACE PROCEDURE MOAMALAT."IO_EMP_REP"
    P_FROMDATE IN NUMBER,
    P_TODATE IN NUMBER,
    P_EMPID IN NUMBER,
    RCT1 OUT GLOBALPKG.RCT1
    AS
    BEGIN
    OPEN RCT1 FOR
    SELECT COUNT (I.CORRESPONDENCENUMBER) cont,
    EMP.FULLNAME empname,
    D.DEPARTMENTNAME deptname
    FROM MOAMALAT.IO_INCOMING i,
    MOAMALAT.IO_EMPLOYEES emp,
    MOAMALAT.IO_DEPARTMENTS d
    WHERE I.RECEIVEDBY = (SELECT EM.USERID
    FROM MOAMALAT.IO_EMPLOYEES em
    WHERE EM.EMPLOYEEID = P_EMPID)
    AND I.RECEIVEDBY LIKE EMP.USERID
    --and EMP.DEPARTMENTID=1900
    AND I.RECEIVEDBYDEPARTMENTID = D.DEPARTMENTID
    AND I.CORRESPONDENCEDATE BETWEEN P_FROMDATE AND P_TODATE
    GROUP BY EMP.FULLNAME, D.DEPARTMENTNAME
    UNION ALL
    SELECT COUNT (o.CORRESPONDENCENUMBER) cont,
    EMP.FULLNAME empname,
    D.DEPARTMENTNAME deptname
    FROM MOAMALAT.IO_OUTGOING o,
    MOAMALAT.IO_EMPLOYEES emp,
    MOAMALAT.IO_DEPARTMENTS d
    WHERE O.SENTBY = (SELECT EM.USERID
    FROM MOAMALAT.IO_EMPLOYEES em
    WHERE EM.EMPLOYEEID = P_EMPID)
    AND EMP.USERID LIKE EMP.USERID
    AND EMP.USERID LIKE O.SENTBY
    AND O.SENTBYDEPARTMENTID = D.DEPARTMENTID
    AND O.CORRESPONDENCEDATE BETWEEN P_FROMDATE AND P_TODATE
    GROUP BY EMP.FULLNAME, D.DEPARTMENTNAME;
    END;

    aymanhamdan01 wrote:
    thanks for replay
    sb92075
    this line 6:  RCT1 OUT GLOBALPKG.RCT1
    does Oracle (& you) know what datatype GLOBALPKG.RCT1 is?

  • Forward Declaration in Class Builder

    Hi All,
       In the Class Builder (SE24)when i create a new Class, There is an option of Forward declaration  in the Property Tab. In this, we can add Type Group Interface and Class. What is the Purpose of this forward declaration?
      The F1 help does not provide any help.
    Regards,
    Kapil.

    in addition to above replies, it can be used for classes and interfaces in that case Forward declaration is equivalent to
    CLASS <class_name> DEFINITION LOAD.
    interface <interface_name> load
    statements which are normally used in Program ( case for local classes )
    use of Load from SAP docu
    ... LOAD
    Effect
    The variant with the LOAD addition loads a global class class from the Class Library. This statement was needed before Release 6.20 if you wanted to access one of the static components of class from within a program, or to declare an event handler for class before class had been loaded automatically. From Release 6.20 onwards, the LOAD addition is only needed if the compilation of an ABAP program fails because it includes recursive accesses of a globa l class. In such cases, you may be able to make the program compilable by explicitly loading the class before recursion.
    Thanks,
    kranthi.

  • Forward Declaration and "this" keyword

    Consider this code:
    class A {
       private int i = 2 * this.j;  // This will be calculated as 2 * 0 = 0
    //   private int i = 2 * j;  //This code will not compile
       private int j = 20;
    }Why the "this" keyword is required for the j to be accessible? Though it is a forward declaration, what is the significance of "this" which gives visibility to the variable j. Please give some light to this.

    Though it is a forward declaration, what is the significance of "this" which gives
    visibility to the variable jI don't think "this" alters the visibility of j: that is the instance variable j is in scope. However "Use of instance variables whose declarations appear textually after the use is sometimes restricted, even though these instance variables are in scope."
    See "8.3.2.3 Restrictions on the use of Fields during Initialization" http://java.sun.com/docs/books/jls/third_edition/html/classes.html#287410
    Using "this" you have a reference to the object being constructed with the j instance variable sill having its default value of zero.
    Such instance initialisers would appear to be inherently less intelligible than using a constructor.

  • Use of forward declaration

    Hi Experts,
                   Please let me know the use of forward declaration for a class. How to use that?
    Thanks and Regards,
    Debarshi

    Hi,
    Absolutely true matt...
    you use forward declaration when you want to indicate that this component will be defined later but i am referring to this as of now.
    so that it does not give any syntax/ run time error.
    Rgds/Abhi

  • Package forward declaration

    Can anyone kindly explain me in detail about Package forward declaration and where this is used and what's the purpose of using it.A example would be good
    Thanks in advance

    A subprogram declaration called a
    forward declaration. It consists of the subprogram
    specification in the package body .
    CREATE OR REPLACE PACKAGE BODY declare_forward
    IS
    PROCEDURE pro(. . .);      -- forward declaration
    PROCEDURE pro2(. . .)
    IS                         -- subprograms defined
    BEGIN           -- in alphabetical order
    pro(. . .);
    END;
    END declare_forward;

  • Forward declaration concept

    hi,
    i have a package
    CREATE OR REPLACE PACKAGE BODY pkgemp AS
    FUNCTION fNeedsCpeReview(
    p_order_id IN VARCHAR2 DEFAULT NULL)
    RETURN product_info_tbl
    is
    CURSOR csr_ord_control IS
    SELECT action_cd
    FROM ord_control
    WHERE order_id = l_order_id;
    begin
    select * from abc where enum=1234;
    execute immediate create table abc(
    enum number);
    END pkgemp;
    -- please forget abt the function and cursor.
    -- the table 'abc' is not present in the DB
    -- so we cannot execute select statement and compilation error even though we are creatign that table after 'select' statement
    -- we need to do forward declarartion.
    my question is how do we do a forward declaration for creating a table ?

    Hi,
    Creating tables in procedures is rarely necessary in Oracle.
    Describe what you're trying to do, and someone will suggest a good way to do it. Many people have used global temporary tables where they thought creating a table on the fly was necessary.
    If you really do have to use table (abc) that may not exist at compile time, or if abc may be dropped and recreated after the procedure is compiled, then do everything that involves abc using dynamic SQL.
    Remember that EXECUTE IMMEDIATE works on strings, so
    execute immediate create table abc(
    enum number);is incorrect, but
    execute immediate 'create table abc(
                                       enum number)';will work.

  • No logical forward declared in action {0} in Web Channel

    Hello
    We are getting this error (No logical forward declared in action ) in CRM Web Channel when we are trying to retrieve a service order.
    Any Ideas????

    Hello,
    I would guess that this maybe due to come config in your struts-config.xml
    I would check the f tansaction type that is been used and the transaction category
    The only transaction category working with ICSS are:                                   
    - BUS2000116                                                                       
    - BUS2000120                                                                       
    - BUS2000112                  
    Regards
    Mark

  • Forward Declarations

    hi all,
    can anyone explain me abt forward declarations in PLSQL

    Forward Declaration:
    A forward declaration consists of a subprogram spec terminated by a semicolon.
    SQL> declare
      2   procedure proc1(p1 varchar2);--Forward
      3   procedure proc2 is
      4   begin
      5     proc1('Hai');--Used here without defining
      6   end;
      7   procedure proc1(p1 varchar2) is[b]--defined here
      8   begin
      9    dbms_output.put_line(p1);
    10   end;
    11  begin
    12   proc2;
    13  end;
    14  /
    Hai
    PL/SQL procedure successfully completed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Receiving the warning of class forward declaration

    I am trying to build the Clustering Plug in project on my Leopard. I have following 2 queries -
    In that project an interface class is defined as
    @interface ClusteringController : NSWindowController { ....... ..... .... } @end.
    And this class is used in implementation class using forward declaration as follows
    @class ClusteringController;
    then in one fuction it is used as follows
    (long) filterImage:(NSString*) menuName {
    ClusteringController *cluster = [[ClusteringController alloc] init]; [cluster showWindow:self]; return 0; }
    When i try to build this project it showing a warning as follows
    warning: receiver 'ClusteringController' is a forward class and corresponding @interface may not exist
    Also there is 1 more warning is coming
    warning: no '-updateProxyWhenReconnect' method found
    This warning is coming for the following line of code
    if(delegate) [delegate updateProxyWhenReconnect];
    Can anybody help me to overcome these warnings?

    shaktirsg wrote:
    And this class is used in implementation class using forward declaration as follows
    @class ClusteringController;
    An implementation requires an #import of the entire interface file for any class used in the code. As a rule:
    Use @class when a class is used in an @interface
    Use #import when a class is used in an @implementation
    if(delegate) \[delegate updateProxyWhenReconnect\];
    warning: no '- updateProxyWhenReconnect' method found
    It looks like the compiler doesn't know the class of 'delegate'. Can we see the code that sets the 'delegate' variable? Also please let us know where updateProxyWhenReconnect is declared. Is it declared in the interface for the class to which 'delegate' belongs? If so, it might be good for us to also see that @interface file.
    \- Ray

  • Declaration in plsql

    hi
    I am trying to compile this code but its not comipiling here is the code
    <pre>
    declare
         type null_record is record(
              fname varchar2(10) default 'PLSQL',
              lname varchar2(10) default 'Oracle');
    procedure by_refrence(in_r in null_record, out_r out nocopy null_record) is
         begin
              out_r := in_r;
         end by_refrence;
    r_var1 null_record;
         r_var2 null_record;
    begin
         r_var2.fname := 'SQL';
         dbms_output.put_line('before assigning' || r_var2.fname);
         by_refrence(r_var2, r_var1);
         -- both the attributes of the records turns null
         dbms_output.put_line('after assigning ' || r_var1.fname);
    end
    </pre>;

    Not compiling? I'm not surprised: Where did you find this structure?
    If you want an anonymous block then get the procedure declaration out of there.
    If you want a stored procedure drop the word DECLARE and put your variables into the correct place before the BEGIN.
    Look a the demos here:
    http://www.psoug.org/reference/procedures.html
    Likely your types should either be stand-alone types or declared in a package header.

  • How pass a parameter with forward slash to plsql script

    Hi,
    I am trying pass a parameter to plsql script from command line using sqlplus, and the parameter is a file directory and has '/'. Seems the system couldn't recognize the value.
    here is my code in DECLARE:
    l_FileDir VARCHAR2(200) := &&FileDir ;
    I pass value '/usr/tmp' (with the single quote in the string)
    Can someone tell me how I do it?
    Thanks,
    Kate
    Edited by: user12100435 on Feb 25, 2010 8:31 AM

    user12100435 wrote:
    I think you are right. The issue is not file-separator character issue. because the exact same script run in another envoironment. And it's not file directory or permission issue because if I use hardcoded value, the code works fine.
    The error message is invalid File directory.
    Here is the related part of the code.
    -- open file handler
    IF UTL_FILE.IS_OPEN(l_FileHandler) THEN
    UTL_FILE.FCLOSE(l_FileHandler);
    ELSE
    l_FileHandler := UTL_FILE.FOPEN ( location => l_FileDir,
    filename => l_FileName,
    open_mode => 'W',
    max_linesize => 32767 );
    END IF;Ok, based on your input so far, I have cooked up a simple testcase.
    Make sure you are doing something similar to this -
    test@XE>
    test@XE> -- show the contents of the anonymous PL/SQL script
    test@XE> -- You are probably passing two parameters - the file location and the file name
    test@XE> --
    test@XE> ! cat test5.sql
    DECLARE
      l_FileHandler UTL_FILE.FILE_TYPE;
      l_FileDir     VARCHAR2(200) := '&1' ; 
      l_FileName    VARCHAR2(200) := '&2' ; 
    BEGIN
      -- open file handler
      IF UTL_FILE.IS_OPEN(l_FileHandler) THEN
        UTL_FILE.FCLOSE(l_FileHandler);
      ELSE
        l_FileHandler := UTL_FILE.FOPEN ( location => l_FileDir,
                                          filename => l_FileName,
                                          open_mode => 'W',
                                          max_linesize => 32767 );
        UTL_FILE.PUT_LINE(file => l_FileHandler, buffer => 'Hello, World!');
        UTL_FILE.FCLOSE(file => l_FileHandler);
      END IF;
    END;
    test@XE>
    test@XE> -- execute it
    test@XE> @test5.sql '/usr/tmp' 'first.txt'
    old   3:   l_FileDir     VARCHAR2(200) := '&1' ;
    new   3:   l_FileDir     VARCHAR2(200) := '/usr/tmp' ;
    old   4:   l_FileName    VARCHAR2(200) := '&2' ;
    new   4:   l_FileName    VARCHAR2(200) := 'first.txt' ;
    DECLARE
    ERROR at line 1:
    ORA-29280: invalid directory path
    ORA-06512: at "SYS.UTL_FILE", line 33
    ORA-06512: at "SYS.UTL_FILE", line 436
    ORA-06512: at line 10
    test@XE>
    test@XE> -- Create a directory object that points to "/usr/tmp"
    test@XE> create directory log_dir as '/usr/tmp';
    Directory created.
    test@XE>
    test@XE> -- now invoke the script
    test@XE> -- Note - I pass the value "LOG_DIR" in uppercase. That's the name of my directory object.
    test@XE> --
    test@XE> @test5.sql 'LOG_DIR' 'first.txt'
    old   3:   l_FileDir     VARCHAR2(200) := '&1' ;
    new   3:   l_FileDir     VARCHAR2(200) := 'LOG_DIR' ;
    old   4:   l_FileName    VARCHAR2(200) := '&2' ;
    new   4:   l_FileName    VARCHAR2(200) := 'first.txt' ;
    PL/SQL procedure successfully completed.
    test@XE>
    test@XE> -- Since my Oracle client is on the same machine as the Oracle server, I can check
    test@XE> -- this file "/usr/tmp/first.txt" quite easily
    test@XE>
    test@XE> ! cat /usr/tmp/first.txt
    Hello, World!
    test@XE>
    test@XE> isotope

  • How to create Extra Freight Unit for LCL Forwarding Order in Web Version of SAP?

    Hi,
    Can anyone please tell me how to create Extra Freight Unit in LCL Forwarding Order. Normally, each LCL Forwarding Order has one Freight Unit. But, if there are two types of Dangerous Goods and need to be transported via separate containers. Obviously, it should have separate Freight Unit to be created in the system. But, even adding package in Items Tab, unable to create Freight Unit for LCL order. Is there any other way to create Extra Freght Unit?

    Hi Aaron,
    When the FWO saving, it would build the freight unit auotmatically.
    The filed "Document Type" in FUBR is used to specify the FU type.
    So the FWO build the FU base on the FUBR which maintain in the FWO type.
    Useful link for FUBR :
    http://help.sap.com/saphelp_tm80/helpdata/en/5a/6749c4614f46e2a12160c775ff19de/frameset.htm
    Best Regards
    Clark Huang

Maybe you are looking for

  • Update from IOS 10.6.8 to Yosemite/Mavericks

    Hi, My computer is up for an upgrade from my OSX 10.6.8 and I seem to eligible for it, nevertheless I'm getting the message that this version cannot be installed. All the details are below, anyone have any suggestions on what I'm missing? System Vers

  • Read from one file ... and write

    I had written below code to read from a file which has input in below format... $ filla % dillla I wrote a code to read from the below file and I want to write into another file... in another format...like filla, $ dilla, % I wrote as below... but my

  • PowerBook G4 Safari update?

    My PowerBook G4 needs Safari updated, according to Gmail, Facebook and other sites. My G4 says all software is up to date. What Safari should I have? Additionally Facebook won't play videos.  It says I need to update Flashplayer.  I try to update it

  • Inbound idoc error in R/3while distributing GOA to R/3

    Hi, We have faced below inbound idoc issue for service GOA while replicating GOA to R/3. When distributing contracts for external services the system issues message SE120 (Number range conflict (internal package no. & already assigned)). How can this

  • Itv stuck in sync mode, how to disengage w/o losing content?

    itv stuck in sync mode, how to disengage w/o losing content?