Bad bind variable error on creating trigger

hi
im trying to create a trigger on a table in Oracle and I keep gettin this error:
PLS-00049: bad bind variable 'NEW.ID'
TeamID is a primary Key, it creates the sequence fine, but i get the error on the create trigger,
CREATE TABLE TBLTEAMS
TEAMID NUMBER(5),
NAME VARCHAR2(50 BYTE),
MANAGER VARCHAR2(50 BYTE),
COSTCENTRE NUMBER(9),
PARENTTEAMID NUMBER(5)
create sequence seq_Teamsautonumber;
create trigger trg_Teamsautonumber
before insert on tblteams
for each row
begin
select seq_Teamsautonumber.nextval into :new.id from dual;
end;
any ideas?

You have said
:new.idthat means you are trying to load the sequence value into a column that doesn't exist in your table.
you would need to use
:new.teamidAssuming you are trying to auto-populate the TEAMID column on your table.

Similar Messages

  • Getting a bad bind variable error while compiling a custom form in R12

    Hi,
    I am getting a bad bind variable error while compiling a custom form.
    I tried setting the forms_path variable and I am still getting the error. Can anyone please suggest what can be done?
    DECLARE
    BEGIN
    IF :parameter.p_line_ship_to = 'T'
    THEN
    IF :SYSTEM.cursor_item = 'LINE.SHIP_TO'
    THEN
    :parameter.lov_num_param1 := :line.ship_to_customer_id;
    oe_lines.ship_to ('WHEN-VALIDATE-ITEM');
    :parameter.lov_num_param1 := :line.ship_to_customer_id;
    END IF;
    :parameter.p_line_ship_to := 'F';
    END IF;
    END;
    I am getting this error:
    Bad bind variable 'parameter.p_line_ship_to'

    The Parameter is not defined in the form.. But, this form is already been compiled and deployed.. I have to make some changes to the form and tried to compile it, when i am getting this error. Is it possible that the parameter would be defined in some other form or can this error be due to some other reasons?
    Thanks in Advance.

  • PLS-00049: bad bind variable 'NEW.ID' on trigger

    Hi guys, I am using Oracle SQL Developer version 2.1.1.64 and having the sql statement like below
    CREATE TABLE Zipcodes
         zipcode_id NUMBER(10),
         zipcode VARCHAR2(10),
         district_id NUMBER(10),
         PRIMARY KEY(zipcode_id)
    CREATE SEQUENCE ZIPCODE_ID_SEQ START WITH 1 INCREMENT BY 1;
    CREATE OR REPLACE TRIGGER ZIPCODE_TRIGGER
    BEFORE INSERT
    ON ZIPCODES
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    BEGIN
         SELECT ZIPCODE_ID_SEQ.NEXTVAL INTO :NEW.ZIPCODE_ID FROM DUAL;
    END;
    And I got errors:
    Error(2,40): PLS-00049: bad bind variable 'NEW.ID'
    Error(4,5): PL/SQL: Statement ignored
    Error(4,39): PLS-00357: Table,View Or Sequence reference 'ZIPCODE_ID_SEQ.NEXTVAL' not allowed in this context
    Error(2,36): PLS-00049: bad bind variable 'NEW.ID'
    Error(2,2): PL/SQL: SQL Statement ignored
    Error(2,9): PL/SQL: ORA-02289: sequence does not exist
    Error(5,1): PLS-00103: Encountered the symbol "SHOW"
    Firstly, I dont even have the "SHOW" key world in my syntax.
    What is it happening ?
    Thank you in advance.

    Hi,
    954390 wrote:
    Hi guys, I am using Oracle SQL Developer version 2.1.1.64 Thanks; that could be useful information. Even more important is your database version (e.g. 11.2.0.2.0)
    and having the sql statement like below
    CREATE TABLE Zipcodes
         zipcode_id NUMBER(10),
         zipcode VARCHAR2(10),
         district_id NUMBER(10),
         PRIMARY KEY(zipcode_id)
    )Don't you need a semicolin or a slash after the CREATE TABLE statement?
    CREATE SEQUENCE ZIPCODE_ID_SEQ START WITH 1 INCREMENT BY 1;Did you get a message like "Sequence created" at this point?
    CREATE OR REPLACE TRIGGER ZIPCODE_TRIGGER
    BEFORE INSERT
    ON ZIPCODES
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    BEGIN
         SELECT ZIPCODE_ID_SEQ.NEXTVAL INTO :NEW.ZIPCODE_ID FROM DUAL;
    END;
    And I got errors:
    Error(2,40): PLS-00049: bad bind variable 'NEW.ID'
    Error(4,5): PL/SQL: Statement ignored
    Error(4,39): PLS-00357: Table,View Or Sequence reference 'ZIPCODE_ID_SEQ.NEXTVAL' not allowed in this context
    Error(2,36): PLS-00049: bad bind variable 'NEW.ID'
    Error(2,2): PL/SQL: SQL Statement ignored
    Error(2,9): PL/SQL: ORA-02289: sequence does not exist
    Error(5,1): PLS-00103: Encountered the symbol "SHOW"
    Firstly, I dont even have the "SHOW" key world in my syntax.
    What is it happening ?You don't have anything like NEW.ID, either.
    Also, the line numbers in error messages for triggers start with the first DECLARE or BEGIN statement, so this trigger only has 3 lines, yet you're getting line numbers up to 5 in the error messages.
    That trigger works fine for me in SQL*Plus (database 10.2.0.1.0).
    Are you sure you're showing the complete script, exactly what you're running? If you had some syntax error before the CREATE OR REPLACE TRIGGER statement, that might possibly account for the parser getting confused.
    Does your code work in SQL*Plus?

  • Bad bind variable error

    Hi all,
    I have this code in a PB trigger:
    declare
    v_alert_button number;     
    invalid BOOLEAN;
    CURSOR C_REFNO_SEARCH IS
    SELECT * FROM REFNO_LIB.REFNO_02000_IDENT
    WHERE CAGECDXH = :CONTROL.C_CAGECDXH AND
    REFNUMHA = :CONTROL.C_REFNUMHA;
    BEGIN
    OPEN C_REFNO_SEARCH;
    FETCH C_REFNO_SEARCH INTO :REFNO_02000_IDENT;
    invalid := C_REFNO_SEARCH%NOTFOUND;
    IF invalid then
    V_ALERT_BUTTON := SHOW_ALERT('REFNUM_NOT_FOUND');
    END IF;
    CLOSE C_REFNO_SEARCH;
    REDISPLAY;
    END;          
    I can't compile this trigger code cleanly. I get a error on the FETCH statment pointing to ":REFNO_02000_IDENT" as a bad bind variable. I'm trying to populate the ":REFNO_02000-IDENT" data block without having to key in over 50 items that are in the block.
    Any help is appreciated.
    Thanks

    It's not possible what you want. I guess you have to key in the items. Forms tries to find the item :REFNO_02000_IDENT and can't find it becuase it doesn't exist. Thats why you get bad bind variable.

  • CG$CTRL Bad Bind Variable error Migrating from Forms 4.5 to Forms 6

    Hi All,
    I have an old application deployed using Forms 4.5 runtime that I would like to migrate to the latest version of Forms.
    My intended migration path was Forms 4.5 -> Forms 6i -> Forms 10g.
    After successfully converting the source 4.5 .pll library files to Forms 6i by opening the files in the Forms 6i Forms Builder (6.0.8.25) and then saving the library files in the FORMS60_PATH I now encounter the following error that is hindering the migration process:
    Error 49 at line 6, column 3
    bad bind variable 'CG$CTRL.SE_CODE'
    I have read some other posts that mention Headstart Templates. Does anyone know if these CG$xxxx program units are part of Headstart? And if so, how can I get the Template files?
    Thanks in advance,
    Gary.

    CG$CTRL are cerated when the forms are developed using the designer...
    Oracle Forms requires that every item in a form must belong to a block, but these generated non-base table items are not associated with any module component. There is therefore no repository definition of a data block to which the generated items can belong.
    Form Generator resolves this situation by creating a control block to which the generated non-base table items can belong. The generated block is given the name CG$CTRL.
    The CG$CTRL block has no physical representation in the generated form and has none of the properties (e.g. block decoration) associated with generated data blocks. The CG$CTRL block is simply a logical object to which generated
    So try to find out in which form the above procedure /program unit is being called and then modify the pll accordingly....
    Rajesh Alex

  • 'Error 49 bad bind variable' error message.

    When I copied a form that has been working from our Linux server to my PC and compiled it, I received many error messages like this in several procedures, functions and triggers:
    “Error 49 at line 69, column 10, bad bind variable ‘edit_Dealer.corporation’
    Does anybody know why this is? As I said, the app works for the end user from the Linux server.
    Thank You.

    Does the form you copied have any attached libraries or subclassed objects? If so, did you copy the Library and Object source files to your PC as well? If you copied these supporting files already, are they in a directory location that is part of your FORMS_PATH?
    Hope this helps,
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Bad bind variable in a db trigger

    Hello,
    i want whenever updating on INSP_YEARLY_PLAN to be updating on the other table INSP_DAILY_SCHEDULE.
    But, Got the following error
    CREATE OR REPLACE TRIGGER UPDATE_SCHEDULE_YEARLY_PLAN
    AFTER UPDATE ON INSP_YEARLY_PLAN
    FOR EACH ROW
    DECLARE
    V_SCDEDULE_ID      NUMBER(11);
    BEGIN
    UPDATE INSP_DAILY_SCHEDULE
    SET     YEARLY_PLAN_ID   =:OLD.YEARLY_PLAN_ID ,
            INSPECTION_ID       =:OLD.YEARLY_PLAN_ID ,
            EQUIPMENT_ID       = :OLD.EQUIPMENT_ID ,
            INSPECTION_FROM_DATE = :OLD.INSPECTION_FROM_DATE ,
            INSPECTION_TO_DATE    =:OLD.INSPECTION_TO_DATE
    WHERE  SCDEDULE_ID =:NEW.SCDEDULE_ID;
       EXCEPTION
         WHEN OTHERS THEN
           RAISE;
    END SCHEDULE_YEARLY_PLAN ;
    /Any Suggestion pls.
    Regards,
    Abdetu..

    SCDEDULE_ID cause i don't create it it's like that in db ...You may want to check - is the column "SCDEDULE_ID" present in both the tables - "INSP_YEARLY_PLAN" as well as "INSP_DAILY_SCHEDULE" ?
    I'd guess that the column "SCDEDULE_ID" either :
    (a) does not exist in at least one of the two tables, or
    (b) is spelled as "SCHEDULE_ID" (or something other than "SCDEDULE_ID") in either.
    isotope

  • Bad bind variable error in oracle forms 10g

    i have a created a table in oracle database 10g
    create table myimage(image_id number, image_name BLOB);
    i want insert an image and retrieve an image through programing(don't want block level) in oracle forms 10g
    without using java beans(and finely working in both windows XP2 and Solaries)
    how can i do this please can anybody give me the source code to do this because i am new in oracle forms.
    i need a immediate replay to this answer why because i have urgent requirement on this in my web erp project

    You can use WEBUTIL to do so, but
    without using java beans(and finely working in both windows XP2 and Solaries)WEBUTIL also contains javabean. I don't know why you have this restriction, i'd say you won't succeed without any java-bean.

  • Bad bind variable 'string'

    please help. I get the below error.
    [Error] PLS-00049 (12: 13): PLS-00049: bad bind variable 'NEW.PUBLICATION_DT'
    [Error] PLS-00049 (16: 12): PLS-00049: bad bind variable 'OLD.PUBLICATION_DT'
    [Error] PLS-00049 (16: 45): PLS-00049: bad bind variable 'NEW.PUBLICATION_DT'
    CREATE TABLE PROPOSAL
      PROPOSAL_ID                  NUMBER(18)       NOT NULL,
      PUBLICATION_DT               TIMESTAMP(6), 
      WORKFLOWPHASE_ID             NUMBER(18),
    CREATE OR REPLACE TRIGGER TRG_FOR_PROJECT_WORKFLOW
      BEFORE  INSERT
          OR  UPDATE
          ON  PROJECT
      REFERENCING OLD AS OLD NEW AS NEW
      FOR EACH ROW
    WHEN (OLD.WORKFLOWPHASE_ID = '15')
    BEGIN
      If INSERTING THEN
            If  :NEW.PUBLICATION_DT IS NOT NULL THEN
                 :NEW.WORKFLOWPHASE_ID := '17';
            END IF;
      ELSIF UPDATING THEN
            If :OLD.PUBLICATION_DT IS NULL AND  :NEW.PUBLICATION_DT IS NOT NULL THEN
               :NEW.WORKFLOWPHASE_ID := '17';
            End If;
      END IF;
    END;

    Hi,
    Please correct the below
    1)The table script you've provided has some errors
    2)The trigger you are trying to create is on 'PROJECT' ,I believe it should be on 'PROPOSAL'

  • Bad bind variable & best practice for delete

    I am working with three tables and very new to SQL. I need to create a procedure that will accept an ID and go through two sub tables and delete child records. Item is the main table. I am passing in the ID into the procedure and I want to use it as below. I keep getting a bad bind variable error message. I have verified that the table is setup as a number and my procedure accepts a number. I also want someone to review this from best practice as I am new to procedures.
    PROCEDURE DeleteItem (p_ItemID IN NUMBER, p_RowsAffected OUT number)
    IS
    p_RowsAffected NUMBER;
    -- select the itemdetail for the analysis
    CURSOR c_itemdetail
    IS
    SELECT
    itemdetailid
    FROM itemDETAIL
    WHERE itemid = :p_ItemID;
    BEGIN
    -- loop through each itemdetail and delete the itemdetailoutlay
    FOR r_itemdetail IN c_itemdetail
    LOOP
    BEGIN
    DELETE FROM ITEMDETAILOUTLAY
    WHERE itemdetailid = r_itemdetail.itemdetailid;
    COMMIT;
    END;
    END LOOP;
    -- delete the itemdetail
    BEGIN
    DELETE FROM ITEMDETAIL
    WHERE itemid = :p_ItemID;
    COMMIT;
    END;
    -- delete the main item
    BEGIN
    DELETE FROM ITEM
    WHERE itemdid = :p_ItemID;
    COMMIT;
    p_RowsAffected := SQL%ROWCOUNT;
    END;
    END DeleteItem;

    Hi,
    Welcome to the forum!
    As you may notice, this site normally compresses white-space. Whenever you post code, or any formatted text, on this site, type these 6 characters:
    \(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.
    I don't think you mean to use bind variables anywhere, so don't use colons before any variable names.  You were doing this correctly with p_RowsAffected; do the same thing with p_ItemID.
    Try this:PROCEDURE DeleteItem (p_ItemID IN NUMBER, p_RowsAffected OUT number)
    IS
    -- p_RowsAffected NUMBER;     -- Don't name local variables the same as arguments
    -- select the itemdetail for the analysis
    CURSOR c_itemdetail
    IS
    SELECT
    itemdetailid
    FROM itemDETAIL
    WHERE itemid = p_ItemID;     -- No : before p_ItemID
    BEGIN
    -- loop through each itemdetail and delete the itemdetailoutlay
    FOR r_itemdetail IN c_itemdetail
    LOOP
    BEGIN
    DELETE FROM ITEMDETAILOUTLAY
    WHERE itemdetailid = r_itemdetail.itemdetailid;
    COMMIT;
    END;
    END LOOP;
    -- delete the itemdetail
    BEGIN
    DELETE FROM ITEMDETAIL
    WHERE itemid = p_ItemID;     -- No : before p_ItemID
    COMMIT;
    END;
    -- delete the main item
    BEGIN
    DELETE FROM ITEM
    WHERE itemdid = p_ItemID;     -- No : before p_ItemID
    COMMIT;
    p_RowsAffected := SQL%ROWCOUNT;
    END;
    END DeleteItem;
    The most important "best practice" with PL/SQL is to avoid doing it whenever possible. 
    If SQL offers a way o do the same thing, it's usally best not to code anything in PL/SQL.
    Have you considered foreign key constraints, with "ON DELETE CASCADE"?  That way, you could simply "DELETE FROM item", and all the dependent rows in the other tables would automatically be deleted.   You wouldn't need to remember to call a procedure like this; in fact, you would have no need for a procedure like this.
    Given that you do have such a procedure:
    You're doing row-by-row processing, which some mad wags like to call "slow-by-slow" processing.
    For example, iYou're xplicitly finding each ItemDetailID separately, and deleting each one separately, like this:... CURSOR c_itemdetail
    IS
    SELECT
    itemdetailid
    FROM itemDETAIL
    WHERE itemid = p_ItemID;
    -- loop through each itemdetail and delete the itemdetailoutlay
    FOR r_itemdetail IN c_itemdetail
    LOOP
    BEGIN
    DELETE FROM ITEMDETAILOUTLAY
    WHERE itemdetailid = r_itemdetail.itemdetailid;
    COMMIT;
    END;
    END LOOP;
    It's more efficient for the system (and less coding for you) if you let SQL handle as much as possible, so do this instead...     DELETE FROM ItemDetailOutlay
         WHERE ItemDetailID IN
              ( SELECT itemdetailid
              FROM     itemDETAIL
              WHERE     itemid     = p_ItemID
    Do you really want to COMMIT 3 times?  0 or 1 times might be better.
    What happens if there is some kind of error, say, after you've delete rows form ItemDetailOutlay and ItemDetail, but before you've delete from Item?  Wouldn't you want the entire transaction to fail, and leave all three tables in a consistent state?  If so, either have the calling procedure COMMIT, or have a single COMMIT at the end of DelteItem.
    Edited by: Frank Kulash on May 6, 2010 2:25 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Error in trigger: PLS-00049: bad bind variable

    Hi,
    I am trying one of the XML/XDK samples from technet (http://otn.oracle.com/tech/xml/htdocs/XDBDemo2.html) and get this error while compiling the trigger: here's the code snippet
    create or replace trigger PURCHASEORDEREXPLOSION
    instead of insert on NEWPURCHASEORDER
    for each row
    declare
    begin
    DOCUMENT := :new.PODOCUMENT; <--Error here: PLS-00049: bad bind variable 'NEW.PODOCUMENT'
    I can't understand why is this happening? Any clues??
    Thanks!
    -Rajeev

    You don't specify bind variables with the colon ":" prefix in PL/SQL.
    The procedure you posted builds a query using string concatenation. Even if you remove the colon from your variable name you still won't be using bind variables.
    If you want to use bind variables you should consider doing the following:
    1. Use the DBMS_SQL package.
    2. Use EXECUTE IMMEDIATE with the USING clause.
    3. Use OPEN <REF CURSOR> FOR <STATEMENT> with the USING clause.
    Each one has different advantages/disadvantages.
    If looks as if you want to pass in a dynamic IN list. If you use bind variables it will effectively treat the entire list as ONE value enclosed in single quotes. If you truly want a dynamic IN list you need to investigate another method.
    Tom Kyte has some information on Dynamic IN lists here: [How can I do a variable in list?|http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:210612357425]

  • TRIGGER ERROR: bad bind variable

    Hello,
    I'm just starting off with oracle and am trying to do the same as auto_increment in mysql is doing by creating this sequence and trigger, but on the trigger I am getting the following error:
    error:
    PLS-00049: bad bind variable 'TAKEOVER_USERS.TAKEOVER_UID'This is the code for trigger, table and sequence:
    trigger:
    CREATE OR REPLACE TRIGGER  "TAKEOVER_USERS_T1"
    BEFORE
    insert on "TAKEOVER_USERS"
    for each row
    begin
    select TAKEOVER_UID.nextval into :takeover_users.TAKEOVER_UID from dual;
    end;Table:
    CREATE TABLE  "TAKEOVER_USERS"
       ( "TAKEOVER_UID" NUMBER NOT NULL ENABLE,
    "TAKEOVER_FBID" VARCHAR2(20) NOT NULL ENABLE,
    "takeover_accepted_terms" NUMBER(1,1) NOT NULL ENABLE,
    "takeover_lastName" VARCHAR2(30),
    "takeover_firstName" VARCHAR2(30),
    "takeover_country" VARCHAR2(40),
    "takeover_session" VARCHAR2(50) NOT NULL ENABLE,
    "takeover_created" TIMESTAMP (6) NOT NULL ENABLE,
      CONSTRAINT "takeover_users_PK" PRIMARY KEY ("TAKEOVER_UID") ENABLE
       )sequence:
    CREATE SEQUENCE   "TAKEOVER_UID"  MINVALUE 1 MAXVALUE 99999999999999 INCREMENT BY 1 START WITH 1 NOCACHE  NOORDER  NOCYCLEYou got any idea what I need to change to make this work?
    Thanks!
    Christine

    if your DB is 11g you can try this
    CREATE OR REPLACE TRIGGER  "TAKEOVER_USERS_T1"
    BEFORE
    insert on "TAKEOVER_USERS"
    for each row
    begin
    :NEW.TAKEOVER_UID:=TAKEOVER_UID.nextval;
    end;if 10g or older..
    CREATE OR REPLACE TRIGGER  "TAKEOVER_USERS_T1"
    BEFORE
    insert on "TAKEOVER_USERS"
    for each ROW
    BEGIN
    SELECT TAKEOVER_UID.NEXTVAL INTO :NEW.TAKEOVER_UID FROM dual;
    end;Regards,
    Prazy

  • PLS-00049 error :bad bind variable

    We recently migrated our dev databse to 10g
    for the following table the trigger is erroring out as follows :
    The same trigger works in 9i production though .Can anyone see anything that might be amiss
    CREATE TABLE ARCH_CLAIM_REJECTION_CODES
    REJECTION_ID NUMBER(38) NOT NULL,
    REJECTION_DESC VARCHAR2(600 BYTE),
    DT_STAMP NUMBER,
    DT_CREATED DATE,
    DT_LAST_UPDATED DATE
    INSERT INTO CLAIM VALUES (
    :OLD.REJECTION_ID,
    :OLD.REJECTION_DESC,
    :OLD.DT_STAMP,
    :OLD.DT_LAST_UPDATED,
    :OLD.DT_CREATED
    PLS-00049: bad bind variable 'OLD.REJECTION_ID'
    PLS-00049: bad bind variable 'OLD.REJECTION_DESC'
    PLS-00049: bad bind variable 'OLD.DT_STAMP'
    PLS-00049: bad bind variable 'OLD.DT_LAST_UPDATED'
    PLS-00049: bad bind variable 'OLD.DT_CREATED'

    REATE OR REPLACE TRIGGER ODSLIVE.TR_CLAIM_REJECTION_CODES_BUR
    BEFORE UPDATE ON CLAIM_REJECTION_CODES
    FOR EACH ROW
    DECLARE
    gv_errcode VARCHAR2(100);
    gv_errmsg VARCHAR2(100);
    BEGIN
    --DBMS_OUTPUT.PUT_LINE('TRIGGER CALLED FOR CLAIM_REJECTION_CODES');
    INSERT INTO ARCH_CLAIM_REJECTION_CODES VALUES (
    :OLD.REJECTION_ID,
    :OLD.REJECTION_DESC,
    :OLD.DT_STAMP,
    :OLD.DT_LAST_UPDATED,
    :OLD.DT_CREATED
    EXCEPTION
    WHEN OTHERS THEN
    gv_errcode :=SQLCODE;
    gv_errmsg :=SQLERRM;
    PKG_COMMONACTIVITIES.PR_ERRORLOG_DETAILS('TRIG-01-0001',
    gv_errcode,
    gv_errmsg,
    'TR_CLAIM_REJECTION_CODES_BUR',
    'CLAIM_REJECTION_CODES');
    --DBMS_OUTPUT.PUT_LINE('TM-01-0001 '||'TR_CLAIM_REJECTION_CODES_BUR '||'CLAIM_REJECTION_CODES'||gv_errmsg);
    --RAISE;
    END TR_CLAIM_REJECTION_CODES_BUR;

  • BAD BIND Variable in Trigger

    What's wrong with this script
    desc     psaudit;
    Name               Type
    AUDIT_OPRID     VARCHAR2(30)
    AUDIT_STAMP     DATE
    AUDIT_ACTN     VARCHAR2(1)
    RECNAME          VARCHAR2(15)
    FIELDNAME          VARCHAR2(18)
    OLDVALUE          VARCHAR2(65)
    NEWVALUE          VARCHAR2(65)
    KEY1               VARCHAR2(65)
    KEY2               VARCHAR2(65)
    KEY3               VARCHAR2(65)
    KEY4               VARCHAR2(65)
    KEY5               VARCHAR2(65)
    KEY6               VARCHAR2(65)
    KEY7               VARCHAR2(65)
    KEY8               VARCHAR2(65)
    KEY9               VARCHAR2(65)
    KEY10          VARCHAR2(65)
    KEY11          VARCHAR2(65)
    KEY12          VARCHAR2(65)
    KEY13          VARCHAR2(65)
    KEY14          VARCHAR2(65)
    KEY15          VARCHAR2(65)
    22     rows     selected
    CREATE OR REPLACE TRIGGER JOB_TR
    AFTER INSERT OR UPDATE OR DELETE ON PS_JOB_BT
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    DECLARE
    V_AUDIT_OPRID VARCHAR2(64);
    BEGIN
    DBMS_APPLICATION_INFO.READ_CLIENT_INFO(V_AUDIT_OPRID);
    IF :OLD.RECNAME IS NULL
    THEN
    INSERT INTO PSAUDITWRK
    VALUES (GET_PS_OPRID(V_AUDIT_OPRID),SYSDATE,'I',:NEWRECNAME,:NEWFIELDNAME,:NEWOLDVALUE,:NEWNEWVALUE,:NEWKEY1,:NEWKEY2,:NEWKEY3,:NEWKEY4,:NEWKEY5,:NEWKEY6,:NEWKEY7,:NEWKEY8,:NEWKEY9,:NEWKEY10,:NEWKEY11,:NEWKEY12,:NEWKEY13,:NEWKEY14,:NEWKEY15);
    ELSE
    IF :NEWRECNAME IS NULL
    THEN
    INSERT INTO PSAUDITWRK
    VALUES (GET_PS_OPRID(V_AUDIT_OPRID),SYSDATE,'D',:OLD.RECNAME,:OLD.FIELDNAME,:OLD.OLDVALUE,:OLD.NEWVALUE,:OLD.KEY1,:OLD.KEY2,:OLD.KEY3,:OLD.KEY4,:OLD.KEY5,:OLD.KEY6,:OLD.KEY7,:OLD.KEY8,:OLD.KEY9,:OLD.KEY10,:OLD.KEY11,:OLD.KEY12,:OLD.KEY13,:OLD.KEY14,:OLD.KEY15);
    ELSE
    INSERT INTO PSAUDITWRK
    VALUES (GET_PS_OPRID(V_AUDIT_OPRID),SYSDATE,'B',:OLD.RECNAME,:OLD.FIELDNAME,:OLD.OLDVALUE,:OLD.NEWVALUE,:OLD.KEY1,:OLD.KEY2,:OLD.KEY3,:OLD.KEY4,:OLD.KEY5,:OLD.KEY6,:OLD.KEY7,:OLD.KEY8,:OLD.KEY9,:OLD.KEY10,:OLD.KEY11,:OLD.KEY12,:OLD.KEY13,:OLD.KEY14,:OLD.KEY15);
    INSERT INTO PSAUDIT
    VALUES (GET_PS_OPRID(V_AUDIT_OPRID),SYSDATE,'A',:NEWRECNAME,:NEWFIELDNAME,:NEWOLDVALUE,:NEWNEWVALUE,:NEWKEY1,:NEWKEY2,:NEWKEY3,:NEWKEY4,:NEWKEY5,:NEWKEY6,:NEWKEY7,:NEWKEY8,:NEWKEY9,:NEWKEY10,:NEWKEY11,:NEWKEY12,:NEWKEY13,:NEWKEY14,:NEWKEY15);
    END IF;
    END IF;
    END JOB_TR;
    Warning: compiled but with compilation errors
    LINE/COL ERROR
    5/4 PLS-00049: bad bind variable 'OLD.SYSADM'
    8/49 PLS-00049: bad bind variable 'NEW.RECNAME'
    8/62 PLS-00049: bad bind variable 'NEW.FIELDNAME'
    8/77 PLS-00049: bad bind variable 'NEW.OLDVALUE'
    8/91 PLS-00049: bad bind variable 'NEW.NEWVALUE'
    8/105 PLS-00049: bad bind variable 'NEW.KEY1'
    8/115 PLS-00049: bad bind variable 'NEW.KEY2'
    8/125 PLS-00049: bad bind variable 'NEW.KEY3'
    8/135 PLS-00049: bad bind variable 'NEW.KEY4'
    8/145 PLS-00049: bad bind variable 'NEW.KEY5'
    8/155 PLS-00049: bad bind variable 'NEW.KEY6'
    LINE/COL ERROR
    8/165 PLS-00049: bad bind variable 'NEW.KEY7'
    8/175 PLS-00049: bad bind variable 'NEW.KEY8'
    8/185 PLS-00049: bad bind variable 'NEW.KEY9'
    8/195 PLS-00049: bad bind variable 'NEW.KEY10'
    8/206 PLS-00049: bad bind variable 'NEW.KEY11'
    8/217 PLS-00049: bad bind variable 'NEW.KEY12'
    8/228 PLS-00049: bad bind variable 'NEW.KEY13'
    8/239 PLS-00049: bad bind variable 'NEW.KEY14'
    8/250 PLS-00049: bad bind variable 'NEW.KEY15'

    Hi,
    Your trigger still don't have any reference to OLD.SYSADM, meaning those compile errors are from something else.
    You should
    1. Format your trigger (Which you have to some degree)
    2. Paste it into SQL*Plus
    3. Followed it by alter trigger ... compile
    4. And show errors.
    5. Paste back everything here
    6. Remember to enclose SQL*Plus output in {noformat}{noformat} tags
    Regards
    Peter
    edit:
    I take back what I said about formatting. This is how it looks formatted:create or replace trigger job_tr
    after insert or update or delete
    on ps_job_bt
    referencing new as new old as old
    for each row
    declare
    v_audit_oprid varchar2(64);
    begin
    dbms_application_info.read_client_info(v_audit_oprid);
    if :old.recname is null
    then
    insert into psauditwrk
    values (get_ps_oprid(v_audit_oprid)
    ,sysdate
    ,'I'
    ,:newrecname
    ,:newfieldname
    ,:newoldvalue
    ,:newnewvalue
    ,:newkey1
    ,:newkey2
    ,:newkey3
    ,:newkey4
    ,:newkey5
    ,:newkey6
    ,:newkey7
    ,:newkey8
    ,:newkey9
    ,:newkey10
    ,:newkey11
    ,:newkey12
    ,:newkey13
    ,:newkey14
    ,:newkey15);
    else
    if :newrecname is null
    then
    insert into psauditwrk
    values (get_ps_oprid(v_audit_oprid)
    ,sysdate
    ,'D'
    ,:old.recname
    ,:old.fieldname
    ,:old.oldvalue
    ,:old.newvalue
    ,:old.key1
    ,:old.key2
    ,:old.key3
    ,:old.key4
    ,:old.key5
    ,:old.key6
    ,:old.key7
    ,:old.key8
    ,:old.key9
    ,:old.key10
    ,:old.key11
    ,:old.key12
    ,:old.key13
    ,:old.key14
    ,:old.key15);
    else
    insert into psauditwrk
    values (get_ps_oprid(v_audit_oprid)
    ,sysdate
    ,'B'
    ,:old.recname
    ,:old.fieldname
    ,:old.oldvalue
    ,:old.newvalue
    ,:old.key1
    ,:old.key2
    ,:old.key3
    ,:old.key4
    ,:old.key5
    ,:old.key6
    ,:old.key7
    ,:old.key8
    ,:old.key9
    ,:old.key10
    ,:old.key11
    ,:old.key12
    ,:old.key13
    ,:old.key14
    ,:old.key15);
    insert into psaudit
    values (get_ps_oprid(v_audit_oprid)
    ,sysdate
    ,'A'
    ,:newrecname
    ,:newfieldname
    ,:newoldvalue
    ,:newnewvalue
    ,:newkey1
    ,:newkey2
    ,:newkey3
    ,:newkey4
    ,:newkey5
    ,:newkey6
    ,:newkey7
    ,:newkey8
    ,:newkey9
    ,:newkey10
    ,:newkey11
    ,:newkey12
    ,:newkey13
    ,:newkey14
    ,:newkey15);
    end if;
    end if;
    end job_tr;
    It is immediately seen that this
          if :newrecname is null
    Should be
          if :new.recname is null
    And this error isn't even shown in your eledged compile errors.
    Edited by: Peter Gjelstrup on Feb 10, 2009 7:00 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • [Error] PLS-00049 (6: 19): PLS-00049: bad bind variable 'NEW.T1NAM'

    1. create table t1
    (t1ID int,
    t1nam varchar2(33)
    2. create or replace view t1t2t3
    t1id, t1name, t2id, t2nam, t2cty, t2st, aid, aname, bid, bname, t3id, t3nam
    as
    select * from t1, t2, t1 a, t1 b, t3
    where t1.t1ID = t2.id(+)
    and T2.CTY = a.t1ID(+)
    and t2.sty = b.t1ID(+)
    and t1.t1ID = t3.t3id(+)
    3. CREATE OR REPLACE TRIGGER t1t2t3
    INSTEAD OF INSERT or update
    ON t1t2t3
    BEGIN
    insert into t1
    values(:new.t1ID, :new.t1nam);
    END t1t2t3;
    Get error:
    [Error] PLS-00049 (6: 19): PLS-00049: bad bind variable 'NEW.T1NAM'
    Pls advise. I am using Toad.
    Thanks.

    tnam1 not belongs to t1t2t3.
    :new should be used to te columns of the table on which you are writing the trigger.
    Here i think t1t2t3 has t1name field you have to use :new.t1name instead of :new.t1nam(which belongs to table t1)

Maybe you are looking for

  • Empty Document Found: Problem due to FCC

    My scenario relates to a Sender File Adapter and a Receiver IDoc Adapter.  My Outbound Message Type / Data Type has multiple Complex elements which I later replicated to only three(3) Complex elements to simplify checking the issue. The elements defi

  • Want docked iPhone to use Bluetooth for Nav (Waze, GoogleMaps, etc.) when on non-Aux (radio or Sirius)

    I have an iPhone 5.  I also have a 2007 Mercedes E350.  I have a Viseeo Bluetooth device which pairs with my phone for calls only (it is instead of the MB brand Bluetooth device that does the exact same thing).  For my dock I have an iPhone 5 style p

  • User being able to download filled out form in pdf format

    Hello, I'm testing the formscentral application and was wondering if the users are able to obtain a copy of the filled out form in pdf format versus just plain text in the email? Thanks

  • Apple TV and Dissapearing Sync Option

    First off - I love my ATV. Now... I can not get my computer to Sync with the 40G ATV. There is not an option in the tabs while it is streaming to the MacBook Pro. As a matter of fact, Streaming is the only thing it will do. When I go to Settings and

  • Can I change the icon colours in iOS7?

    I've made the mistake of 'upgrading' to iOS7 on my iPhone 5, and there doesn't seem to be a way of going back to iOS6. So, can anyone tell me if there's a way to chnage the colours of the icons? I thing they are hideously bright and tacky. Thank you