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...

Similar Messages

  • PLS-00428 Error when creating a new trigger

    Hi,
    I'm encountering the PLS-00428 error when I run the script below.
    CREATE OR REPLACE TRIGGER TIBCOUSER.po_response_trigger
    BEFORE INSERT ON po_response FOR EACH ROW
    BEGIN
    IF:NEW.ariba_processsequence is null then
    SELECT pttransid AS pttransid, 'Product Test Pass 1' AS pttransname, aribaorderid AS aribaorderid, '0' AS errorcode, '' AS MESSAGE, SYSDATE AS ariba_insertdate
    FROM po_request
    WHERE adb_l_delivery_status = 'N';
    UPDATE po_request
    SET adb_l_delivery_status = 'C'
    WHERE adb_l_delivery_status = 'N';
    END IF;
    END;
    Can someone point out what is missing or what is wrong with the script? Any help would be much appreciated.
    Regards,
    Jigger

    Hi Jigger,
    I was able to create the trigger using the script below.That's nice, you got the trigger created. Below is your trigger, I have added some comments.
    create or replace trigger tibcouser.po_response_trigger
       before insert or update
       on po_response
       for each row
    declare
      -- 1. These variables should really be anchored to po_response
      -- 2. They should be named differently than columns in po_response
      -- 3. It seems that you don't need them (See 7.)
       pttransid               integer := null;
       pttransname             varchar2(255) := null;
       aribaorderid            varchar2(255) := null;
       errorcode               integer := null;
       message                 varchar2(255) := null;
       ariba_insertdate        date := null;
       adb_l_delivery_status   char(1) := null;
    begin
      -- 4. This is never true, since adb_l_delivery_status is null, here
          -- So, I guess your trigger never does anything, so in a sense it works
       if (adb_l_delivery_status = 'N')
       then
        -- 5. This select  will raise too_many_rows, when there is more than one record in po_response.
        -- 6. It seems you will have a problem with mutating table
        -- 7. The select doesn't do anything, you never use any of the values selected
        -- 8. The select is confusing, since variables are named equally to columns
        -- 9. You select constants, why not just assign them right away
        select pttransid
                ,pttransname
                ,aribaorderid
                ,'0'
                ,sysdate
            into pttransid
                ,pttransname
                ,aribaorderid
                ,errorcode
                ,message
                ,ariba_insertdate
            from po_response;
          -- 10. This update will update ALL records in po_request, probably not what you want.
          update po_request
             set adb_l_delivery_status = 'C';
       end if;
    -- 11. Good practise dictates end po_response_trigger;
    end;
    /In general, when you think your post has been answered, then kindly mark it as such.
    Regards
    Peter

  • Problem with showing a group of records in dynamic page (PLS-00428  error)

    Hi
    I have problems with viewing a group of records from db. I've created Page, which "Page Type" attribute is "PL/SQL". In "PL/SQL Code" field, I've written very simple SQL query: "SELECT * FROM PORTAL_DEMO.EMP ;"
    I'd like to generate HTML table with it's result. Unfortunately, every time I get the same Exception:
    Error 30584: DBMS_SQL has raised an unhandled exception. ORA-06550: line 1, column 7: PLS-00428: an INTO clause is expected in this SELECT statement
    Is it necessary to write a COURSOR (and use HTP function) to realize this functionality? I succeed, trying this way - but it is very uncomfortable ( a lot of code ).
    What I have done in wrong way?
    Please help me.
    Best regards
    Mario

    How do I handle this?

  • I am getting PLS-00410 error - duplicate fields in RECORD, TABLE or argumen

    Here is what I am doing. I have a package header and a package body. The package header compiles successfully and the above error is displayed while compiling the package body only.
    Package Header :
    create or replace package pkg_pms_print is
    type c_ref_printer_list is REF CURSOR;
    PROCEDURE sp_get_printerlist
    p_team_id IN NUMBER,
    printer_list_refcur OUT pkg_pms_print.c_ref_printer_list
    end pkg_pms_print;
    Package Body:
    create or replace package body pkg_pms_print is
    PROCEDURE sp_get_printerlist (
    p_team_id IN NUMBER,
    printer_list_refcur OUT pkg_pms_print.c_ref_printer_list
    IS
    printer_list_refcur pkg_pms_print.c_ref_printer_list;
    v_printer_id pms_test_team_printer.printer_id%TYPE;
    v_printer_name pms_test_team_printer.printer_name%TYPE;
    v_default_printer pms_test_team_printer.default_printer%TYPE;
    BEGIN
    OPEN printer_list_refcur FOR SELECT printer_id, printer_name,default_printer FROM pms_test_team_printer WHERE team_id = p_team_id;
    --DBMS_OUTPUT.PUT_LINE('EMPNO    ENAME');
    DBMS_OUTPUT.PUT_LINE('--- -------');
    LOOP
    FETCH printer_list_refcur INTO v_printer_id, v_printer_name,v_default_printer;
    EXIT WHEN printer_list_refcur%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(v_printer_id || '|'|| v_printer_name ||'|'|| v_default_printer);
    END LOOP;
    CLOSE printer_list_refcur;
    END sp_get_printerlist;
    END pkg_pms_print;
    Apart from this error one error also shown as " PL/SQL: Item Ignored"
    The compile points to the 3rd line in the package body for errors with the above mentioned error. There is no duplicate field name or argument name as the oracle error message says. It's a simple straight forward code. Can somebody help me if I am overlooking something?
    Regards,
    AgrawalV

    this problem is solved but i am not getting output when i have tested this procedure in test window.
    Program Continues upto 2nd DBMS call, means i am getting output upto 2nd DBMS call.
    create or replace package body pkg_pms_print is
    PROCEDURE sp_get_printerlist (
    p_team_id IN NUMBER,
    printer_list_refcur OUT pkg_pms_print.c_ref_printer_list
    IS
    -- printer_list_refcur pkg_pms_print.c_ref_printer_list;
    v_printer_id pms_test_team_printer.printer_id%TYPE;
    v_printer_name pms_test_team_printer.printer_name%TYPE;
    v_default_printer pms_test_team_printer.default_printer%TYPE;
    BEGIN
    OPEN printer_list_refcur FOR SELECT printer_id, printer_name,default_printer FROM pms_test_team_printer WHERE team_id = p_team_id;
    DBMS_OUTPUT.PUT_LINE('Printer ID Printer Name Default Printer');
    DBMS_OUTPUT.PUT_LINE('----- ------- ------- ');
    LOOP
    FETCH printer_list_refcur INTO v_printer_id, v_printer_name,v_default_printer;
    EXIT WHEN printer_list_refcur%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(v_printer_id || v_printer_name || v_default_printer);
    END LOOP;
    CLOSE printer_list_refcur;
    END sp_get_printerlist;
    END pkg_pms_print;

  • Getting PLS-00382 error

    create or replace TRIGGER MS_TRIGG_PRICE_CHANGE before INSERT
    ON MS_OBIEE_PRICE_CHANGE
    FOR EACH ROW
    declare
    L_xpricechghrdtl_tbl "RIB_XPriceChgHrDtl_TBL" := NULL;
    L_xpricechghrdtl_rec_1 "RIB_XPriceChgHrDtl_REC" := NULL;
    L_xpricechgdesc_rec_1 "RIB_XPriceChgDesc_REC" := NULL;
    L_xpricechgexcst_tbl "RIB_XPriceChgExcSt_TBL" := NULL;
    L_xpricechgexcst_rec_1 "RIB_XPriceChgExcSt_REC" := NULL;
    O_STATUS_CODE VARCHAR2(255) := null;
    O_ERROR_MESSAGE RTK_ERRORS.RTK_TEXT%TYPE := null;
    L_message_type VARCHAR2(20) := 'XPRICECHGMOD';
    O_rib_error_tbl RIB_ERROR_TBL := NULL;
    program_error exception;
    BEGIN
    L_xpricechghrdtl_rec_1 := "RIB_XPriceChgHrDtl_REC"(50,:new.loc);
    L_xpricechghrdtl_tbl := "RIB_XPriceChgHrDtl_TBL"();
    L_xpricechghrdtl_tbl.extend();
    L_xpricechghrdtl_tbl(1) := L_xpricechgdesc_rec_1;
    It shows the error
    SQL> show err
    Errors for TRIGGER MS_TRIGG_PRICE_CHANGE:
    LINE/COL ERROR
    21/4 PL/SQL: Statement ignored
    21/31 PLS-00382: expression is of wrong type
    Please let me know the possible reasons behind the error.

    I created a trigger for a table that creates a recordtype for posting to a function that expects a recordtype as an input parameter.
    THe full trigger code is as follows:
    create or replace TRIGGER MS_TRIGG_PRICE_CHANGE before INSERT
    ON MS_OBIEE_PRICE_CHANGE
    FOR EACH ROW
    declare
    L_xpricechghrdtl_tbl "RIB_XPriceChgHrDtl_TBL" := NULL;
    L_xpricechghrdtl_rec_1 "RIB_XPriceChgHrDtl_REC" := NULL;
    L_xpricechgdesc_rec_1 "RIB_XPriceChgDesc_REC" := NULL;
    L_xpricechgexcst_tbl "RIB_XPriceChgExcSt_TBL" := NULL;
    L_xpricechgexcst_rec_1 "RIB_XPriceChgExcSt_REC" := NULL;
    O_STATUS_CODE VARCHAR2(255) := null;
    O_ERROR_MESSAGE RTK_ERRORS.RTK_TEXT%TYPE := null;
    L_message_type VARCHAR2(20) := 'XPRICECHGMOD';
    BEGIN
    L_xpricechghrdtl_rec_1 := "RIB_XPriceChgHrDtl_REC"(50,:new.loc);
    L_xpricechghrdtl_tbl := "RIB_XPriceChgHrDtl_TBL"();
    L_xpricechghrdtl_tbl.extend();
    L_xpricechghrdtl_tbl(1) := L_xpricechgdesc_rec_1;
    L_xpricechgdesc_rec_1 := "RIB_XPriceChgDesc_REC"('MS_TRIGG_PRICE_CHANGE', -- namespace
    :new.item, -- Item number
    '', -- diff_id
    :new.selling_unit_retail, --Selling Unit Retail
    'EA', -- selling UOM
    '', -- multi units
    '', -- multi unit retail
    '', -- multi selling uom
    :new.currency_code, -- currency_code
    '', -- country
    'S', -- hier_level
    L_xpricechghrdtl_tbl,
    L_xpricechgexcst_tbl);
    RMSSUB_XPRICECHG.CONSUME (O_status_code,
    O_error_message,
    L_xpricechgdesc_rec_1,
    L_message_type);
    if O_status_code <> 'S' and O_status_code is NOT NULL then
    :new.status := 'Failed';
    :new.error := O_error_message;
    end if;
    end;
    The function called is RMSSUB_XPRICECHG.CONSUME.

  • Problem with a stored procedure (Error(4,1): PLS-00428: an INTO clause..)

    Dear Oracle Experts,
    I try to use the stored procedure below but get this error :
    "Error(4,1): PLS-00428: an INTO clause is expected in this SELECT statement"
    I don't have any clue what could be wrong with my syntax. INTO wouldn't make any sense at this task.
    Does someone of you know what's wrong with my Procedure ?
    Hope someone can help,
    best regards,
    Daniel Wetzler
    create or replace PROCEDURE AnalysisCompatibility (DATEBEGIN timestamp, DATEEND timestamp)
    AS
    BEGIN
    select Fs.*,Vs.Analysispriority,Vs.Compatibility Compatibility from SigFacts Fs
    inner Join Variables Vs On
    (Fs.Var_Ref=Vs.Var_Ref and Fs.Machines_Ref=Vs.Machines_Ref )
    where Fs.DT between DATEBEGIN and DATEEND
    and
    Vs.AnalysisPriority > 0
    or
    VS.Compatibility in (6,7,8,9,10,11,13,21,22)
    order by Fs.DT,Fs.Machines_Ref desc, Vs.AnalysisPriority;
    END AnalysisCompatibility;

    I have created a table (ATREPORT.TEST) that has has got the same column name and type of the query output and i still get error message
    PLS-00403 -- statement ATreport.TESt cannot be used as an into target, pls help
    DECLARE start_date DATE := to_date('01/09/2006' , 'DD-MON-YYYY');
    end_date DATE := to_date('30/09/2006' , 'DD-MON-YYYY');
    BEGIN
    SELECT t.SEC_SHORT_NAME, t.SEC_ISIN, t.SEC_NO,t.SEC_NAME, t.TRADE_DATE,
    t.PAYMENT_DATE,t.COUNTERPARTY, t.PRICE , t.NOMINAL ,
                        t.TRANSACTION_NO,t.CURRENT_VALUE_PC, t.CURRENT_VALUE_SC, t.PAYMENT_AMOUNT_PC,
                        t.PAYMENT_AMOUNT_SC,
                   ct.AMOUNT , ct.CURRENCY,
              sb.BUSINESS_CLASS_LEVEL_2 ,sb.BUSINESS_CLASS_LEVEL_2_NAME,
              sb.BUSINESS_CLASS_LEVEL_3 ,sb.BUSINESS_CLASS_LEVEL_3_NAME,
              sb.BUSINESS_CLASS_LEVEL_4 ,sb.BUSINESS_CLASS_LEVEL_4_NAME,
    sb.BUSINESS_CLASS_LEVEL_5 ,sb.BUSINESS_CLASS_LEVEL_5_NAME
    INTO ATREPORT.TEST
    from scdat.A_TRANSACTIONS t
    INNER JOIN scdat.A_COSTTAX ct     
         ON ct.TRANS_REF = t.TRANS_REF
    INNER JOIN scdat.A_SECS_BUSINESS_CLASS_TS sb
    ON sb.SEC_REF = t.SEC_REF           
    where t.TRADE_DATE >= to_char(start_date ,'DD-MON-YYYY')
    and t.TRADE_DATE < to_char(end_date ,'DD-MON-YYYY')
    and ct.COST_NAME = 'Broker commission'
    and sb.BUSINESS_CLASS_DEFINITION = 'FTSE';
    END;

  • HT2693 I am getting an 1015 error while updating Iphone 3G with latest iTunes pls help me to restore iPhone 3G

    I am getting an 1015 error while updating Iphone 3G with latest iTunes pls help me to restore iPhone 3G

    Try this and see if this helps http://support.apple.com/kb/TS3694#error1015

  • Can no longer access blueyonder emails on iphone.I get the following error message: The mail server 'imap4.blueyonder.co.uk is not responding', how do I fix pls?

    Hi there
    As I've mentioned above, I can't seem to access my emails from my blueyonder account on my iphone. When I first set up my account on the phone, I had no problems at all receiving emails. Then recently, just out of the blue I get the following error message: 'Cannot Get Mail, The Mail Server 'imap4.blueyonder.co.uk' is not responding.  Verfiy that you have entered the correct account info in mail settings.  I definitely have the right settings, I even checked with Virgin but they are not able to assist with my problem. Has anyone else experienced this problem, if so,how did you fix it? If you could explain in simple terms as I'm not tech savvy!
    Many thanks!

    http://www.apple.com/uk/support/iphone/mail/
    work through this

  • Getting the following error while running the apex 3.2 report

    Hello All,
    I am running apex 3.2 on oracle 10g.
    I am getting the following error ..
    ORA-04030: out of process memory when trying to allocate 16328 bytes (koh-kghu call ,pl/sql vc2)
    Pls let me know what's the cause of this error..
    thanks/kumar

    Server error, sounds like you have some server issues there, see this blog for possible answers..: http://www.dba-oracle.com/t_ora_04030_out_process_memory.htm
    Thank you,
    Tony Miller
    Webster, TX

  • Getting Portal Runtime Error while accessing one link in Portal Page.

    Hi,
    Can anyone tell why I am getting below error while accessing one of the portal page link:
    " Portal runtime error.
    An exception occurred while processing your request. Send the exception ID to your portal administrator.
    Exception ID: 01:19_27/02/09_0046_16441150
    Refer to the log file for details about this exception. "
    Also please let me know how to get rid of this if possible.
    Thanks in Advance
    Vaibhav Srivastava

    Thank you for your prompt reply.
    Could you please elaborate the same.
    I am getting Portal runtime error while I am acessing an iveiw in E-recruiting. We have setup the role and user in both portal and Backend. But still the error. Could you pls send me the setting you have done.
    Portal runtime ERROR
    An exception occurred while processing your request. Send the exception ID to your portal administrator.
    Exception ID: 02:27_27/04/09_0042_113148050
    Refer to the log file for details about this exception.
    regards
    Justin

  • Object type with constructor gets PLS-00307 (10g)

    Hi all,
    I have the following code, and I am getting the following error. I want to have a constructor that can be called without specifying the parameters by name. Is that not possible?
    What am I doing wrong?
    Thanks!
    Error:Error at line 50
    ORA-06550: line 5, column 17:
    PLS-00307: too many declarations of 'TRANSFEROBJECT_O' match this call
    ORA-06550: line 5, column 5:
    PL/SQL: Statement ignoredCode:DROP TYPE TransferObject_o
    CREATE TYPE
        TransferObject_o
    AS OBJECT
        m_objectId  NUMBER(15)
      , m_attribute VARCHAR2(4000)
      , CONSTRUCTOR FUNCTION TransferObject_o
            p_objectId  NUMBER--   := NULL
          , p_attribute VARCHAR2-- := NULL
        ) RETURN SELF AS RESULT
    CREATE TYPE BODY
        TransferObject_o
    AS
        CONSTRUCTOR FUNCTION TransferObject_o
            p_objectId  NUMBER--   := NULL
          , p_attribute VARCHAR2-- := NULL
        ) RETURN SELF AS RESULT
        IS
        BEGIN
            SELF.m_objectId  := p_objectId;
            SELF.m_attribute := p_attribute;
            RETURN;
        END;
    END;
    DECLARE
        l_object TransferObject_o;
    BEGIN
        l_object := TransferObject_o(1, 'B');
    END;
    /

    Hi,
    When you create an OBJECT, Oracle automatically creates a constructor with one argument for each of the object's attributes. You've created a second constructor, that has the same signature, except that the arguments in your functin are optional. When you call an overloaded routine ( whether it's a constructor or any other function or procedure), Oracle has to decide which of the versions you're calling. If you call the TransferObject_o constructor with fewer than two arguments, the system knows you mean the version you wrote, since the default constructor has two required arguments. But when you call the TransferObject_o constructor with exactly two arguments, it has no way of telling which version to use, and raises an error.
    The Oracle 10.1 "PL/SQL User's Guide and Reference" says:
    "You can define your own constructor methods, either overriding a system-defined constructor, or defining a new function with a different signature."
    I couldn't find an example of overriding the constructor (not that I spent a lot of time looking. If you find one, or figure out how to do it, please post an example or a link here.).
    Failing that, you can always give your constructor a different signature (e.g., put the VARCHAR2 argument first).

  • How to get End System error code?

    I am trying to access IBM MQ queue from my proxy service which is invoking a business service using OSB Service Callout Action.
    Suppose the queue that I am trying to access is not available, OSB is always returning "OSB Service Callout action received an error response" error.
    But, I want the Error code and message which are returned by IBM MQ.
    Pls. help me to get the IBM error code & message.
    I am usiing IBM MQ v7 and OSB 11g
    Thanks,
    Hari

    Can you check the Fault Detail and log the $fault and check.
    Edited by: Prabu on Oct 15, 2012 2:46 PM

  • Get Internal Server Error when run the site

    the url of my site is :
    http://webdb.us.colorcon.com:7777/pls/portal30
    everything ran fine till yesterday. but i also created 2 new sites as follows :-
    http://webdb.us.colorcon.com:7777/pls/prtltest http://webdb.us.colorcon.com:7777/pls/prtltran
    the prtltest is a test site and
    the prtltran is a training site
    but when i log in to my original site today, i get Internal Server Error. i did the troubleshooting and the following URL failed :-
    http://webdb.us.colorcon.com:7777/servlet/IsItWorking
    the troubleshooting guide on OTN says the following maybe the cause :-
    The Apache JServ is not working correctly. Most "internal server errors" are related to Apache Jservs failure to start.(usually due to a port conflict).
    Please look at the following log files for details: Apache Listener log files in IAS_HOME/Apache/Apache/logs, and the
    Apache JServ log files in IAS_HOME/Apache/Jserv/logs.
    is it because the newsites share the same port number 7777 as the existing ones ?
    i looked at the log files and all it says is, some files not found.
    is there anything else i seem to be missing ?
    any help wouldbe appreciated.
    thanx
    null

    Are you using multiple listeners or just one? If you have multiple listeners, then you need to update the jserv.properties file for each with a distinct port. The default is 8007.
    If you are using one listener (which you can do) then the apache/jserv configuration is is wrong. What are the files that it says are missing?

  • PLS-00222 error

    I have the following section of code in a package:
    l_ErrStage := '001-N';
    INSERT INTO int_rec_cash_cpty_trans
    (acct
    ,branch
    ,swift
    ,bus_type
    ,participant_code
    ,balance
    ,settled_balance)
    SELECT cpty_trns.acct,
    cpty_trns.branch,
    cpty_trns.swift,
    cpty_trns.bus_type,
    cpty_trns.participant_code,
    cpty_trns.amount,
    cpty_trns.amount - NVL(fwd_trns.amount,0)
    FROM (SELECT ft.acct,
    ft.branch,
    ft.swift,
    ft.bus_type,
    NVL(ft.participant_code,b.firm_code),
    SUM(ft.amount) amount
    FROM fwdval_trans ft,
    branches b
    WHERE b.branch_no = ft.branch
    AND ft.table_ind = g_CptyTrans
    GROUP BY ft.acct,
    ft.branch,
    ft.swift,
    ft.bus_type,
    NVL(ft.participant_code,b.firm_code)) fwd_trns,
    (SELECT ct.acct,
    ct.branch,
    ct.swift,
    ct.bus_type,
    NVL(ct.participant_code,b.firm_code) participant_code,
    SUM(ct.amount) amount
    FROM cpty_trans ct,
    branches b
    WHERE b.branch_no = ct.branch
    GROUP BY ct.acct,
    ct.branch,
    ct.swift,
    ct.bus_type,
    NVL(ct.participant_code,b.firm_code)) cpty_trns
    WHERE fwd_trns.acct(+) = cpty_trns.acct
    AND fwd_trns.branch(+) = cpty_trns.branch
    AND fwd_trns.swift(+) = cpty_trns.swift
    AND fwd_trns.bus_type(+) = cpty_trns.bus_type;
    COMMIT;
    When I compile it, I get the following error:
    LINE/COL ERROR
    361/9 PL/SQL: SQL Statement ignored
    375/35 PLS-00222: no function with name 'NVL' exists in this scope
    This refers to the line:
    cpty_trns.amount - NVL(fwd_trns.amount,0)
    I've replaced the NVL with a DECODE statement, and it now compiles successfully, but I'd be grateful if anyone could give me a reason why the NVL fails?? I'm using Oracle 8.1.7.4.
    Cheers, Dave.

    <quote>a reason why the NVL fails</quote>
    I don't have a 8i around to test ... but ... back in 8i there were two different parsers: one for SQL and one for PL/SQL (which would parse the PL/SQL and the SQL within PL/SQL). The SQL parser will have all the latest features ... the PL/SQL one would lag somehow.
    In your case it is probably the use of inline views that makes all the difference. If you were to put the big select into a view and then code the PL/SQL as "insert into ... select ... from <view>" you may find the PL/SQL will compile nicely.

  • Deploying Dimension give PLS-00123 error (program too large)

    Hi,
    I'm using OWB 10.2 with a Windows 10g 64bit environment. I successfully deployed a dimension to my target data warehouse. Later, I went back to the dimension and added 5 dimension roles to it and redeployed. When redeploying with the dimension roles, I get the following error:
    ORA-06550: line 1495, column 81:
    PLS-00123: program too large (Diana nodes)
    The recommendation is to break up the PL/SQL code according to the error message but this is generated code so I'm out of luck there. Any suggestions or settings that might alleviate this?
    TIA,
    mike

    In past DW efforts (Informatica, Sybase IQ/Oracle/DB2), I've used synonyms or views against a base time dimension to handle the "roles" so that each looks like a distinct dimension. I'm trying to do the equivalent from OWB. Initially the DW will be relational, but I may generate some cubes from the DW in the future.
    Not sure what you mean by a "pure relational" solution. We will be using discoverer in our environment, but not exclusively. There will be other reporting tools in use as well.

Maybe you are looking for