Function may not be use in SQL - PLS-00231

Here is my code,
-- Database 10g Enterprise Edition Release 10.2.0.2.0
declare
v1 varchar2(2000);
function test_func ( v2 varchar2) return varchar2
is
begin
return v2 || 'x' || v2;
end;
begin
-- ok
v1 := test_func('Hello');
--- Error PLS-00231: Function may not be used
--insert into xxxx values test_func(….
select test_func('World') into v1 from dual;
end;
I don’t want to define test_func in database as a stand-alone/package function. Is there any other way in 10G.
Thanks.

Works for me...
SQL> select banner from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Solaris: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL> set serverout on
SQL> declare
2 v1 varchar2(2000);
3 function test_func ( v2 varchar2) return varchar2
4 is
5 begin
6 return v2 || 'x' || v2;
7 end;
8 begin
9 -- ok
10 v1 := test_func('Hello');
11 dbms_output.put_line (v1);
12 end;
13 /
HelloxHello
PL/SQL procedure successfully completed.

Similar Messages

  • Function 'myfunc' may not be used in SQL Options

    <p>
    Hello,
    I have created a simple function in a packege for use in an update statement. The function is
    FUNCTION myfnc(p1 IN t1.c1%TYPE)
    RETURN VARCHAR2
    IS
    BEGIN
    IF p1 = 3 THEN
    RETURN 'A';
    ELSE
    RETURN 'B';
    END IF;
    END myfnc;
    I use it in a procedure which exists in the same package as the function as follows
    Update t1
    set c1 = myfnc(c2);
    I am getting the compliation error Function 'myfunc' may not be used in SQL.
    There is no db manipulation going on and I have tried using
    PRAGMA RESTRICT_REFERENCES (myfnc, WNDS, WNPS, RNDS, RNPS);
    but to no avail.
    One other thing is that I thought this was compiling OK but then I decided to put the function in the package specification so I could unit test it using a db call. Now if I drop and recreate the package without the declaration in the specification the compile error still occurs. Perhaps that's my mind playing tricks but maybe there is something here I am not aware of.
    Any suggestions?
    </p>

    Hi,
    You found the solution.
    Although it's allowed to say
    Update     t1
    set     c1 = local_var;in a package, where local_var is not defined outside of the procedure, let alone the package, and
    although it's legal to say:
    local_var = myfnc (some_other_var); inside the package where myfnc is a private function (included in the package body, but not in the package header), still
    it is not legal to say:
    Update     t1
    set     c1 = myfnc (c2); If there is a problem with putting myfnc in the package header (for example, you don't want people calling it directly, for some reason), you can make it a stand-alone function, like Someoneelse did, or put in a different package, and give the owner of your first package (and no one else) EXECUTE privileges on it.
    As William pointed out, if myfnc is really this simple, you might not need a function at all.

  • Function name_function may not be used in SQL

    Dear forums,
    when i compiled my form that contain the function package, i got the error "Function <name_function> may not be used in SQL". But when i execute the function from sql plus, it works smoothly.
    What's the solution ?
    with great thanks,

    Hi Salim,
    as far as I understand you you try to use a function that is stored in the form. The select statement is worked on the database where your function is not known. You have to create this function on the database as you did it for using in SQLPlus.
    Regards,
    Werner

  • Table  is mutating, trigger/function may not seen it

    Hi
    My work is before delete this record the same values can be stored into the temporary table..
    Trigger
    CREATE OR REPLACE TRIGGER TEST_TRIGGER
    BEFORE DELETE ON py_test
    for each row
    DECLARE
    EMP_ID py_test%ROWTYPE;
    CURSOR C1 IS SELECT ID,NAME FROM py_test where id=:old.ID;
    begin
    FOR EMP_ID IN C1
    LOOP
    -- DBMS_OUTPUT.PUT_LINE(EMP_ID.ID);
    INSERT INTO TEMP_TABLE VALUES(EMP_ID.ID,EMP_ID.NAME);
    END LOOP;
    END;
    delete from py_test where id=1;
    ERROR at line 1:
    ORA-04091: table TRIGGTEST.PY_TEST is mutating, trigger/function may not see it..
    Pls help..
    Thanks

    Hi,
    I took Rob's example and inserted one more row in "PY_TEST" table for ID=1 and it works perfectly. Have a look:
    SQL>  create table py_test
      2   as
      3   select 1 id, 'Name1' name from dual union all
      4   select 2, 'Name2' from dual
      5   /
    Table created.
    SQL> select * from py_test;
            ID NAME
             1 Name1
             2 Name2
    SQL> insert into py_test values (1, 'NameN');
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> select * from py_test;
            ID NAME
             1 Name1
             2 Name2
             1 NameN
    SQL>  create table temp_table
      2   ( id number(10)
      3   , name varchar2(30)
      4   )
      5   /
    Table created.
    SQL> create or replace trigger test_trigger
      2   before delete on py_test
      3   for each row
      4   begin
      5     insert into temp_table values (:old.id, :old.name);
      6   end;
      7   /
    Trigger created.
    SQL>  delete from py_test where id = 1;
    2 rows deleted.
    SQL> select * from temp_table;
            ID NAME
             1 Name1
             1 NameN
    SQL>

  • ORA-04091: table name is mutating, trigger/function may not see it

    Hi,
    I have a row level before update trigger written on a table A which calls a procedure to undergo some processing. Procedure has some select queries against table A and it inturn causes the following error.
    ORA-04091: table name is mutating, trigger/function may not see it
    To overcome this I have used a combination of PL/SQL collection types (nested tables based on the following definition TYPE t_table_a is table of A.colname%TYPE index by binary_integer;), a row level before update trigger and statement level after update trigger. The mutating problem is fixed, but to update one row of data it took around 3 min and I am wondering if its the problem with PL/SQL tables I have used.
    In before update trigger I am storing the unique id's which needs to be updated into the PL/SQL table and in the after update trigger I am looping through the PL/SQL table and peforming the rest of the processing by calling in the procedure.
    Can anyone help how to minimize the run time of this process or if any other better solution exists?
    Thanks for the help

    Triggers raise the mutating table issue, because else they could be used to create endless loops. If you work around the mutating table issue, then you should make sure not to create an endless loop yourself. This would be possible.
    You description also seems to imply something like this.
    Without code it is impossible to say something specific.
    - Do you initialize your collection in a before statement trigger?
    - Is your looping mechanism somehow broken?
    - Do you update the same table again and again and again?

  • ORA-04091: table is mutating, trigger/function may not see

    Hello All,
    I am not an expert in oracle and I have been facing a problem where I get a message as follows :
    ORA-04091: table <table> is mutating, trigger/function may not see it
    I have a table tab1 which has ID, name, and some other columns. the rows in this table form a parent-child type relationship based on some columns within that table. I have created another table called relationship table. The relationship table has 2 columns ID and parentID. I keep this table up to date using triggers. For example if a new record is inserted or upadted in tab1 which affects the parent - child relationship, i update the relationship table accordingly using an insert / update trigger and it works fine.
    I created another trigger as follows
    create or replace trigger MY_DELETE_TRIGGER
    after delete on tab1
    for each row
    BEGIN
    update relationships a set a.parentID = null where a.parentID = :OLD.ID;
    delete from relationships a where a.id = :OLD.ID;
    END MY_DELETE_TRIGGER;
    Basically what I am doing is, the record once deleted, if it was parent of anybody else, i am setting the parent as null and the record itself, if it was in the relationships as a child, I am removing that row.
    This is when I get the table is mutating error, and I don't know how to fix it.
    Can anybody please help me,
    Thanks in advance

    Could you provide more details?
    SQL> select * from tab1;
            ID NAME
             1 test1
             2 test2
    SQL> select * from relationships;
            ID   PARENTID
             1          1
             2          1
    SQL> create or replace trigger MY_DELETE_TRIGGER
      2  after delete on tab1
      3  for each row
      4  BEGIN
      5  update relationships a set a.parentID = null where a.parentID = :OLD.ID;
      6  delete from relationships a where a.id = :OLD.ID;
      7  END MY_DELETE_TRIGGER;
      8  /
    Trigger created.
    SQL> delete from tab1
      2  where id = 1;
    1 row deleted.
    SQL> select * from relationships;
            ID   PARENTID
             2
    SQL> rollback;
    Rollback complete.
    SQL> insert into relationships values(1,1);
    1 row created.
    SQL> select * from relationships;
            ID   PARENTID
             1          1
             2          1
             1          1
    SQL> delete from tab1
      2  where id = 1;
    1 row deleted.
    SQL> select * from relationships;
            ID   PARENTID
             2
    SQL> disconnect
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.3.0 - 64bit Production
    With the Partitioning option
    JServer Release 9.2.0.3.0 - Production

  • See my error : (REP-1272: Column ‘CF_1’ may not be used as break Column.)

    Hi master
    Sir I have master detail report and I use one formula column and one place holder column in my report in master section
    I use this code
    function CF_1Formula return Date is
    begin
    if :chqdate is not null then
         :cp_1 :=:chqdate;
    else
         :cp_1 :=:sdate;
         end if;
    end;
    Sir when I run my report then system give me this error
    REP-1272: Column ‘CF_1’ may not be used as break Column.
    Please give me idea how I get report
    Thank
    aamir

    Hello,
    Break Order cannot be used for some Column Type :
    http://www.oracle.com/webapps/online-help/reports/10.1.2/topics/htmlhelp_rwbuild_hs/rwcontxt/props/pi_col_break_order.htm
    (CLOB is not explicitly specified, but the restriction for LONG and LONG RAW exists for CLOB too)
    Regards

  • ORA-01409 NOSORT option may not be used

    Hi all,
    We've got a range partitioned table, each partition resides in a different tablespace (locally managed) thus :
    create tablespace abcblast_hit_test_data1
    datafile '/export/data/oracle/HLDDEV05/abcblast_hit_test_data1.dbf'
    size 2600m extent management local uniform size 2500m;
    create tablespace abcblast_hit_test_data2
    datafile '/export/data/oracle/HLDDEV05/abcblast_hit_test_data2.dbf'
    size 2600m extent management local uniform size 2500m;
    Two large SORTED files of data are sql*loaded into each partition, taking up ONE extent in each partition
    I then try to create a non-unique index on the table using NOSORT and get the error ORA-01409 NOSORT option may not be used; rows are not in ascending order
    ... with the following reasoning :
    For non-unique indexes the ROWID is considered part of the index key. This means that two rows that appear to be stored in ascending order may not be. If you create an index NOSORT, and two of the rows in the table have the same index values, but get split across two extents, the data block address of the first block in the second extent can be less than the data block address of the last block in the first extent. If these addresses are not in ascending order, the ROWIDs are not either. Since these ROWIDs are considered part of the index key, the index key is not in ascending order, and the create index NOSORT fails.
    BUT the data for each partition DOES reside in one extent :
    select partition_name, tablespace_name, extent_id, bytes
    from dba_extents
    where segment_name = 'ABCBLAST_HIT'
    and segment_type = 'TABLE PARTITION';
    PARTITION_NAME     TABLESPACE_NAME          EXTENT_ID     BYTES
    PART_01          ABCBLAST_HIT_TEST_DATA1     0          2621440000
    PART_02          ABCBLAST_HIT_TEST_DATA2     0          2621440000
    (Oracle 9.0.1 on Linux)
    HELP !!!! Does this mean we can't use NOSORT when building indexes on partitioned tables ?!
    (Note : if NOSORT is not used then a sort is performed which we are trying to avoid - final table will contain 1.6 billion rows and will consist of 50 partitions)

    Hi ,
    Still i am facing same error like. Can any body help me..
    The following index(es) on table KA31CVLA.CITY were processed:
    index KA31CVLA.CITY_PK was made unusable due to:
    ORA-01409: NOSORT option may not be used; rows are not in ascending order
    index KA31CVLA.CITY_UQ01 loaded successfully with 29761 keys
    i have create one table CITY in user KA31CVLA.
    CREATE TABLE CITY
    CNTRY_CD VARCHAR2(2 BYTE) NOT NULL,
    CITY_NM VARCHAR2(40 BYTE) NOT NULL,
    SEQ_NBR NUMBER(10) NOT NULL,
    POSTL_STT_EQNT_CD VARCHAR2(9 BYTE),
    LATITUDE NUMBER(9,5) NOT NULL,
    LONGITUDE NUMBER(9,5) NOT NULL
    and then added primary constraints
    ALTER TABLE CITY ADD CONSTRAINT KA31CVLA.CITY_PK PRIMARY KEY (CNTRY_CD, CITY_NM, SEQ_NBR)
    after this default unique index created as below
    CREATE UNIQUE INDEX KA31CVLA.CITY_PK ON KA31CVLA.CITY (CNTRY_CD, CITY_NM, SEQ_NBR)
    after that i have added one more constraints is
    CREATE UNIQUE INDEX KA31CVLA.CITY_UQ01 ON KA31CVLA.CITY (CITY_NM, POSTL_STT_EQNT_CD, CNTRY_CD, SEQ_NBR)
    Now trying to load data to KA31CVLA.CITY table through SQLLDR
    here is the command which i am executing to insert..
    SQLLDR CONTROL=D:\GMVS\city.ctl, DATA=D:\GMVS\sorted_city.dat log=D:\GMVS\sorted_log.log USERID="KA31CVLA/KA31CVLA123" DIRECT=Y
    Here is the control file details
    options (direct=true)
    unrecoverable
    load data
    truncate
    into table KA31CVLA.city
    sorted indexes (city_PK)
    reenable disabled_constraints
    fields terminated by "^"
    trailing nullcols
    (cntry_cd char,
    city_nm char,
    seq_nbr integer external,
    postl_stt_eqnt_cd Char,
    latitude integer external,
    longitude integer external)
    The total records insertd to table but i am getting above error in log files.
    The following index(es) on table KA31CVLA.CITY were processed:
    index KA31CVLA.CITY_PK was made unusable due to:
    ORA-01409: NOSORT option may not be used; rows are not in ascending order
    index KA31CVLA.CITY_UQ01 loaded successfully with 29761 keys

  • ORA-04091: is mutating, trigger/function may not see

    I am getting this error
    ORA-04091: table SATURN.SARQUAN is mutating, trigger/function may not see it
    ORA-06512: at "BANINST1.F_GETSARQUANSEQNO", line 24
    ORA-06512: at "BANINST1.F_GETSARQUANSEQNO", line 30
    I am trying to do this insert
    INSERT INTO sarquan
                            (sarquan_pidm,sarquan_term_code_entry,sarquan_seqno,
                             sarquan_appl_no, sarquan_question,
                             sarquan_answer, sarquan_activity_date,
                             sarquan_user_id
                    SELECT spriden_pidm,'201090',BANINST1.F_GETSARQUANSEQNO(spriden_pidm,'201090','1'),'1',
                     'Would you prefer September admission?',
                    DECODE (szcasup_sept_adm, 'Y', 'Yes', 'N', 'No'),sysdate,'rmanoei'
               FROM saturn_midd.szcasup, saturn.spriden
              WHERE spriden_id = szcasup_common_appl_id
                AND spriden_ntyp_code = 'CAPP'
                AND (   szcasup_sept_adm IS NOT NULL
                     OR szcasup_feb_adm IS NOT NULL
                     OR szcasup_interview IS NOT NULL
                AND NOT EXISTS (
                       SELECT *
                         FROM  sarquan
                        WHERE sarquan_pidm = spriden_pidm
                          AND spriden_ntyp_code = 'CAPP'
                          AND sarquan_term_code_entry = '201090');
                          I got data when I ran just the select statement, none of the records have data in the sarquan table.
    I got data when I select from this function
    ,BANINST1.F_GETSARQUANSEQNO(spriden_pidm,'201090','1'),'1'
    Any ideas?
    Edited by: peace4all on Aug 12, 2009 4:49 PM

    I can not drop the trigger, I don't own the trigger, it is in production, SARQUAN is a production table
    Now I am getting this error ORA-04091: table SATURN.SARQUAN is mutating, trigger/function may not see it
    ORA-06512: at "BANINST1.F_GETSARQUANSEQNO", line 24
    ORA-06512: at "BANINST1.F_GETSARQUANSEQNO", line 30
    ORA-06512: at "SATURN.ST_SARQUAN_INSERT_ROW", line 2
    ORA-04088: error during execution of trigger 'SATURN.ST_SARQUAN_INSERT_ROW'
    when I do the following
    I know that this pidm does not have any records in the table SARQUAN
    spriden_pidm = 2287953
    So I try to do a simple insert, not using the function, now I am hardcoding the seq, I know it needs to be 1 since there are not records in that table yet,
    the sequence go by pidm
    INSERT INTO saturn.sarquan
                     sarquan_pidm,
                     sarquan_seqno,
                     sarquan_term_code_entry,
                     sarquan_appl_no,
                      sarquan_question,
                     sarquan_answer,
                     sarquan_activity_date,
                     sarquan_user_id
    SELECT spriden_pidm,'1',
    '201090','1',
                     'Would you prefer September admission?',
                    DECODE (szcasup_sept_adm, 'Y', 'Yes', 'N', 'No'),sysdate,'recheverri'
               FROM saturn_midd.szcasup, saturn.spriden
              WHERE spriden_id = szcasup_common_appl_id
                AND spriden_ntyp_code = 'CAPP'
                 and spriden_pidm = 2287953
                AND (   szcasup_sept_adm IS NOT NULL
                     OR szcasup_feb_adm IS NOT NULL
                     OR szcasup_interview IS NOT NULL
                AND NOT EXISTS (
                       SELECT *
                         FROM saturn.sarquan
                        WHERE sarquan_pidm = spriden_pidm
                          AND spriden_ntyp_code = 'CAPP'
                          AND sarquan_term_code_entry = '201090');
                          Edited by: peace4all on Aug 13, 2009 5:35 AM

  • ORA-04091: table ACCESSLOG is mutating, trigger/function may not see it

    Hi
    Got the following error
    ORA-04091: table ACCESSLOG is mutating, trigger/function may not see it
    i searched the error found that the problem is with FOR EACH ROW
    how can i handel this specifically with the following code:
    CREATE OR REPLACE TRIGGER EMP_ACCESS
    AFTER INSERT
    ON ACCESSLOG
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    DECLARE
    tmpVar NUMBER;
    BEGIN
    IF ( :NEW.INOUT = 'OUT' ) THEN
    SELECT 'X'
    INTO tmpVar
    FROM ACCESSLOG
    WHERE EMPLOYEEID = :NEW.EMPLOYEEID
    AND LOGDATE = :NEW.LOGDATE
    AND INOUT ='IN' ;
    IF tmpVar IS NULL THEN
    INSERT INTO Emp_All_Moves_Absent (
    EMP_NO,
    ATT_DATE,
    ATT_FLAG,
    ATT_TIME_IN,
    ATT_TIME_OUT,
    VAC_COD,
    MIS_CODE,
    DAY_FLAG ,
    POSTEDFLAG,
    ATT_TIME_IN_PLANNED,ATT_TIME_OUT_PLANNED)
    VALUES
    (to_number(to_char(:NEW.employeeid,99999)),
    TO_DATE(:NEW.LOGDATE,'DD/MM/YYYY'),
    'ABS' ,
    to_date(:NEW.LOGTIME,'HH24:MI:SS'),
    to_date(:NEW.LOGTIME,'HH24:MI:SS'),
    NULL,
    NULL,
    'WORK',
    0,
    NULL,NULL);
    END IF;
    ELSIF ( :NEW.INOUT = 'IN' ) THEN
    SELECT 'X'
    INTO tmpVar
    FROM ACCESSLOG
    WHERE EMPLOYEEID = :NEW.EMPLOYEEID
    AND LOGDATE = :NEW.LOGDATE-1
    AND INOUT ='IN' ;
    IF tmpVar IS NULL THEN
    INSERT INTO Emp_All_Moves_Absent (
    EMP_NO,
    ATT_DATE,
    ATT_FLAG,
    ATT_TIME_IN,
    ATT_TIME_OUT,
    VAC_COD,
    MIS_CODE,
    DAY_FLAG ,
    POSTEDFLAG,
    ATT_TIME_IN_PLANNED,ATT_TIME_OUT_PLANNED)
    VALUES
    (to_number(to_char(:NEW.employeeid,99999)),
    TO_DATE(:NEW.LOGDATE-1,'DD/MM/YYYY'),
    'ABS' ,
    to_date(:NEW.LOGTIME,'HH24:MI:SS'),
    to_date(:NEW.LOGTIME,'HH24:MI:SS'),
    NULL,
    NULL,
    'WORK',
    0,
    NULL,NULL);
    END IF;
    END IF;
    EXCEPTION
    WHEN OTHERS THEN
    -- Consider logging the error and then re-raise
    RAISE;
    END EMP_ACCESS_LOG_OUT;
    Urgent help is highly appreciated..
    Regards,
    Abdetu..

    Thanks Jens Petersen for reply
    now i want to make sure of one thing that i have to follow the steps but the last one i will replace it with my trigger NO?
    SQL> create or replace package state_pkg
    2 as
    3 type ridArray is table of rowid index by binary_integer;
    4
    4 newRows ridArray;
    5 empty ridArray;
    6 end;
    7 /
    Package created.
    SQL> create or replace trigger parent_bi
    2 before insert or update on parent
    3 begin
    4 state_pkg.newRows := state_pkg.empty;
    5 end;
    6 /
    Trigger created.
    SQL> create or replace trigger parent_aifer
    2 after insert or update of status on parent for each row
    3 begin
    4 state_pkg.newRows( state_pkg.newRows.count+1 ) := :new.rowid;
    5 end;
    6 /
    Trigger created.
    ---------------------now come my trigger instead of the following one ??---------------
    SQL> create or replace trigger parent_ai
    2 after insert or update of status on parent
    3 begin
    4 for i in 1 .. state_pkg.newRows.count loop
    5 insert into log_table
    6 select theKey, status, effDate
    7 from parent where rowid = state_pkg.newRows(i);
    8 end loop;
    9 end;
    10 /
    Trigger created.
    Regards,
    Abdetu..

  • Table is mutating, trigger/function may not

    hi
    while executing this:
    SQL> insert into LIB_ACCESSION_LOG select * from LIB_ACCESSION_LOG11;
    insert into LIB_ACCESSION_LOG select * from LIB_ACCESSION_LOG11
    ERROR at line 1:
    ORA-04091: table QA.LIB_ACCESSION_LOG is mutating, trigger/function may not
    see it
    ORA-06512: at "QA.TRG_ACCESSION_LOG", line 2
    ORA-04088: error during execution of trigger 'QA.TRG_ACCESSION_LOG'
    how can i do this insert and resolve this error. should i switch off the constraints? and what will happen when i switch on the constraints?

    Hi,
    what is the contents for trigger QA.TRG_ACCESSION_LOG?
    cheers

  • Table is mutating, trigger/function may not see it

    Hi,
    I have been trying to get a trigger to execute a stored procedure when an update is made to a row in a table.
    The procedure works when ran manually and the trigger compiles but when the trigger is fired I get a "table is mutating, trigger/function may not see it" error.
    Here's a bit more background:
    I have a product table where the cost of a product is calculate based on costs in other tables (e.g. cost of raw materials is in the suppliesrawmat table).
    I have written a procedure (called proc_costcalc) which takes in a productID and updates that product's cost in the product table.
    I want a trigger to do this for every affected product when a rawmaterial cost is changed.
    The code of my trigger is:
    CREATE OR REPLACE trigger trig_rawcostupdate
    AFTER INSERT OR UPDATE ON suppliesrawmat FOR EACH ROW
    DECLARE
         cursor c1 is
         SELECT p.prodid
         FROM process p,
              (SELECT s.processid
              FROM stage s,
                   (SELECT stageno
                   FROM stagerawmat
                   WHERE prodid = :new.prodid) subquery0
              WHERE s.stageno = subquery0.stageno) subquery1
         WHERE p.processid = subquery1.processid;
    BEGIN
         FOR tuple in c1
         LOOP
              proc_costcalc(tuple.prodid);
         END LOOP;
    END;
    The query for the cursor generates a list of productIDs which I need to run through the proc_costcalc procedure.
    Can anyone show me where I am going wrong? How can I fix this?
    Thanks
    Keith

    I'm afraid I'm still not getting this.
    Suppose I have 4 tables (product, madefrom, rawmat and suppliesrawmat).
    Product (productid, cost)
    Madefrom (productid, rawmatid)
    Rawmat (rawmatid)
    Suppliesrawmat (supplierid, rawmatid, cost)
    The cost of a product should be the sum cost of all rawmaterials it is made from where the cheapest supply cost of that material is used.
    What I want to do is update the cost of a product when the cost of a raw material used in its production changes.
    My earlier attempt was to have a procedure which when given a productid updates the price of that product. However, when trying to call this procedure from an update on the suppliesrawmat table I recieved the table is mutating error. I now understand why (thanks to everyone for that) but I still don't really know how to rectify the problem.
    How should I be doing this?
    Thanks again
    Keith

  • Entity type "EJB-JAR" may not be used in public part "ejbjar_api"

    Experts,
    Can you please help me to identify why the error 'Entity type "EJB-JAR" may not be used in public part "ejbjar_api", unsupported purpose.' appears on NWDS while creating a project on a DC and how can this be resolved.
    Thanks in advance
    -Lave

    Hi Jain,
    is the error message that the public part is not found prefixed with [dcmake]? If yes that rather points in the direction that there is a problem with the metadata information. (PP name not correctly spelled, renamed after initial creation, perhaps even some problems with upper/lower-case letters depending on your platform.)
    What SP are you using? The log looks like some rather old build plugins are used on a newer NWDI installation.
    The warning from the [wdgen] task and the subsequent failure of the [wdminimizer] can be ignored. "ERROR: Non Fatal Error" is a bit quaint, but it really is not fatal. It just means that the minimizer didn't find the data required to operate. The [wdgen] warning means that the WebDynpro generator could not write the information. So the jar files in your public part are maybe a bit bigger than necessary but that's all.
    Best regards,
    Marc

  • "Partner function may not be changed"

    While trying to change the "responsible employee" of an already released contract, system gives an error "Partner function may not be changed". Can anyone help me with this issue....

    Hi
    This message " Partner functions may not be changed " you are getting because
    you are not allowed to do change your PO .
    So try to have full authorization for doing this operations.You can maintain this in Personalization Tab in Trasaction PFCG for the specific Role.
    Ask BASIS person to help you out.
    <b>Related link -></b>
    "Partner functions may not be changed"
    Regards
    - Atul

  • TBB1-Execute postings occurs an error *Ledger group 0L may not be used*

    Hi everybody,
    While trying to execute postings from a commercial paper occurs the following error
    Ledger group 0L may not be used
    Message no. FAGL_LEDGER_CUST102
    Diagnosis
    Ledger group &1 is assigned to another application.
    I suspect that this is somehow related to Funds management influence, but I can not find the solution,
    I really need to overcome this problem so i'll appreciate any help,
    Thanks in advance,
    Daniel

    Hi Prasad,
    We created ledger groups in costumizing this issue was solved.
    Thank you very much your help.
    Regards,
    Daniel

Maybe you are looking for