problem when creating a trigger: SQL statement ignored

Hello people,

I am trying to create a trigger, but it is not created. Instead, I get the error message that a SQL statement at line 22 was ignored. It's the line indicating IF num2 = 1 THEN. I'd be happy if someone could point me in the right direction or solve my problem.

CREATE OR REPLACE TRIGGER TriggerLogement BEFORE INSERT OR update ON tenants
FOR EACH LINE
DECLARE
NUM INTEGER;
num2 INTEGER;
NUM3 INTEGER;
paysLocataire VARCHAR2 (255);
categorieLocataire VARCHAR2 (1);
BEGIN
SELECT COUNT (ns) IN the number OF tenants WHERE nomBat =: new.nomBat;

IF num > 0 THEN
SELECT paid IN the country OF sports WHERE ns =: new.ns;
SELECT COUNT (country) IN number OF athletes sp, tenants lo WHERE sp.ns = lo.ns AND paysLocataire AND lo.nomBat = pays =: new.nomBat;
IF num = 0 THEN
raise_application_error (-20000, "building already in use for another nationality");
ON THE OTHER
SELECT COUNT (ns) IN num2 OF tenants WHERE nLogement =: new. NLogement AND nomBat =: new.nomBat;
IF num2 = 2 THEN
raise_application_error (-20000, 'full accommodation');
ON THE OTHER
IF num2 = 1 THEN
CateogrieLocataire INTO SELECT category OF athletes WHERE ns = new.ns;
SELECT COUNT (ns) IN num3 FROM tenant lo, sportsmen sp WHERE lo.ns = sp.ns
AND lo.nLogement =: new. NLogement AND lo.nomBat =: new.nomBat AND sp.categorie = categorieLocataire;
IF num3 = 0 THEN
raise_application_error ("-20000, ' already in use for the other sex");
END IF;
END IF;
END IF;
END IF;
END IF;
END;

If you need more information or if you have any questions about my posts please leave your questions or comments. I hope this isn't how completely wrong to enforce some constraints that I can't do with CONSTRAINT and CHECK in the schema definition.

Thanks for your help and your attention.

Sebastian

Hello

Whenever you have a problem that raises an error, display the full error message; do not paraphrase just part of it.

In the triggers line numbers from the first statement DECLARE or BEGIN, so line 22 of your trigger is:

SELECT categorie INTO cateogrieLocataire FROM Sportifs WHERE ns = new.ns;

You are missing a colon before 'new': it should be:

SELECT categorie INTO cateogrieLocataire FROM Sportifs WHERE ns = :new.ns;

A FOR EACH ROW trigger on tenants cannot ask tenants. It's a shame: there are many useful things, you could do if that were allowed, but it's not.
I'm not sure of what all queries. At least one of them:

SELECT  COUNT (ns)
INTO    num2
FROM    Locataires
WHERE   nLogement = :new.NLogement
AND     nomBat    = :new.nomBat;

IF num2 = 2 THEN
    raise_application_error(-20000,'accomodation full');

can be replaced by a UNIQUE constraint. (Constraints are better than triggers, in any case.)

If you can't do what you want with constraints, you can leave anyone directly INSERT or update the table: force them to use a procedure stored instead. You can have an INSTEAD OF trigger on a view, which is essentially the same, but allows you to use DML commands.

If you need help, post some sample data and some examples of DML operations that must be allowed, given the data and some examples of DML operations that should not be allowed.

Tags: Database

Similar Questions

  • Error in Trigger (PL/SQL: SQL statement ignored)

    Here are the trigger:

    CREATE OR REPLACE TRIGGER DRUGREPLACEMENT
    AFTER INSERT ON PHARMACEUTICAL PRODUCTS
    REFERENCING AS NEW newDrugs
    FOR EACH LINE
    WHERE (newDrugs.drugname = newDrugs.genericname)
    BEGIN
    UPDATE of prescription
    SET pharmaceuticalid = newDrugs.drugID
    WHERE pharmaceuticalid IN (SELECT pharmaceuticalid FROM prescription drugs WHERE drugid = pharmaceuticalid AND newDrugs.genericname = pharmaceutical.genericname);
    END;

    Error is:
    Error (2.1): PL/SQL: statement ignored
    Error (3.24): PL/SQL: ORA-00904: "NEWDRUGS. "" DRUGID ": invalid identifier

    pharmaceuticalid is a number in my table of prescription.
    drugid is a number; Genericname and drugname are two varchars in my table of pharmaceuticals. No idea why I get these errors? (I tried to put quotes around newdrugs.drugid, but then he said he just 'newdrugs.drugid' is not valid.) Thanks for your help
    -Brian

    Brian,

    I think that uou you will need to put a colon (:)) in front of the alias "newDrugs" which introduces you to the regular: new alias.)

    Toon

  • "PL/SQL: statement ignored ' from the outset?

    I am brand new to PL/SQL and I just can't understand what is wrong. Any help?
    SQL> 
    SQL> create or replace procedure HW3 (
      2            p_buy number    ) as
      3  
      4            v_pay number;
      5  
      6  begin
      7            v_pay := p_buy(3/4);
      8  
      9            dbms_output.put_line ('You entered: ' || p_buy);
     10            dbms_output.put_line ('You will be charged for: '||trunc(v_pay));
     11  
     12  end;
     13  /
    
    Warning: Procedure created with compilation errors.
    
    SQL> 
    SQL> show errors;
    Errors for PROCEDURE HW3:
    
    LINE/COL ERROR                                                                  
    -------- -----------------------------------------------------------------      
    7/2      PL/SQL: Statement ignored                                              
    7/11     PLS-00222: no function with name 'P_BUY' exists in this scope          
    SQL> 
    SQL> spool off
    I did very simple procedures with several settings, but this code just won't go.

    Have you defined a p_buy function?

    Or finally do you hear that in the first line after begin in your code?

    v_pay := p_buy * (3/4);
    

    When you write p_buy(3/4) the compiler thinks p_buy is a function and you want to call with parameter 3/4.

    Published by: hm on 11.10.2011 23:39

  • PL/SQL: Statement ignored SQL error (SELECTing row, expression arithmetic/s)

    Quick question, on the execution of the query of the ff, I do

    Select a.column, sum (decode(a.column,'string',1,'etc...')

    But when I include a func or procedure, it won't allow me too and that he would give a PL/SQL: SQL statement ignored error and it will compile only if I remove the first a.column as follows

    Select sum (decode(a.column,'string',1,'etc...')

    Why is it so? And how should it be rewritten to include the select a.column?

    Start

    Select a.gameid, sum (decode(a.nscores,'Perfect',100,'Excellent',95,'Good',80,'Poor',50) 'scores'

    in x,y

    Of...

    where the...

    return x

    end myFunc;


    Fundamentals of the PL/SQL language


    Concerning

    Etbin

  • error: PL/SQL statement ignored

    In the code below, I get 3 errors:
    a. PL/SQL statement ignored
    b. PLS-00201
    c. PL/SQL: ORA-00904: invalid identifier

    Help, please. Thank you


    =========================================
    Package body:
    =========================================
    create or replace package BODY manage_students
    as
    procedure find_sname
    (i_student_id IN student.student_id%TYPE,
    o_first_name ON student.first_name%TYPE
    o_last_name ON student.last_name%TYPE)
    IS
    v_student_id student.student_id%TYPE;
    BEGIN
    Select first_name, last_name
    in o_first_name, o_last_name
    the student
    where student_id = i_student_id;
    exception
    while others
    then
    DBMS_OUTPUT. Put_line (' error in search of student_id: ' | v_student_id);
    end find_sname;

    function id_is_good
    (i_student_id to student.student_id%TYPE)
    Returns BOOLEAN
    IS
    number of v_id_cnt;
    Start
    Select count (*)
    in v_in_cnt
    the student
    where student_id = i_student_id;
    return 1 = v_id_cnt;
    EXCEPTION
    while others then
    return FALSE;.
    end id_is_good;
    END manage_students;

    /

    =========================
    Package specifications:
    =========================
    Set serveroutput on
    create or replace package manage_students
    as
    procedure find_sname
    (i_student_id IN student.student_id%TYPE,
    o_first_name ON student.first_name%TYPE
    o_last_name ON student.last_name%TYPE
    );
    function id_is_good
    (i_student_id IN student.student_id%TYPE)
    RETURN A BOOLEAN VALUE;
    END manage_students;

    /

    Published by: [email protected] on March 19, 2009 06:03

    Published by: [email protected] on March 19, 2009 06:03

    Perhaps here:

    number of v_id_cnt; ----
    Start
    Select count (*)
    in v_in_cnt-

  • I can't register names and create playlist appear windows media player acountered a problem when creating or saving the playlist

    appear windows media player acountered a problem when creating or saving the playlist

    To the WMP library, please click on organize and select manage libraries - music . What places are? If there is no available location, remove them and also make sure that a default save location is set. Do the same for the other libraries (videos, pictures, and Recorded TV).

    If this does not help, close WMP, open Windows Explorer, right-click the music library, select Properties and click on restore by default . After that, make sure that a backup location is defined (as indicated by a check mark).

    Tim Baets
    http://www.BM-productions.TK

  • PL/SQL: SQL statement ignored

    Hi all

    10g on solaris 10


    Begin
    2 Loop
    3 delete from calls.incalls
    4 partition(apr201001) e
    5 where exists (select 1
    from calls.incalls
    6 7 partition(apr201001)
    8 where calltype in ('001','031','050','051','055') and transdate between '01-apr-2010' and '02-apr-2010')
    9 )
    10 and rownum<=100000;
    11 if SQL%ROWCOUNT = 0 then
    12 exit;
    end if;
    13 14 commit;
    end loop;
    15 16 end;
    17 /
    )
    *
    ERROR at line 9:
    ORA-06550: line 9, column 24:
    PL/SQL: ORA-00933: SQL command not properly ended
    ORA-06550: line 3, column 4:
    PL/SQL: SQL Statement ignored
    requirement is that I need to delete records of 100000 and put a commit...
    the code above works this way?

    Kai

    Hello

    you have a ') ' to much, remove the line 9.

    Herald tiomela
    htendam.WordPress.com

  • What is this error when creating a trigger

    Hello

    I have create a trigger and get the following error. What is - c

    1 CREATE OR REPLACE TRIGGER TRG_AUDIT_LOGON AFTER
    2 LOG ON TO THE DATABASE
    3 Declare
    4 v_sid v$session.sid%type;
    type of v_serial 5 v$ session.serial # %;
    v_username 6 v$session.username%type;
    v_osuserid 7 v$session.osuser%type;
    8 v_machinename v$session.machine%type.
    v_PROGRAM 9 v$session.program%type;
    v_TERMINAL 10 v$session.terminal%type;
    11 v_hostname v$instance.host_name%type;
    v_instance_name 12 v$instance.instance_name%type;
    13 v_application_id v$database.dbid%type;
    date of v_logon_time 14;
    15 v_Audit_tab_check varchar2 (30);
    16 v_system_users_tab_check varchar2 (30);
    17 v_sql_Audit_upload varchar2 (1000): = "INSERT INTO dbaoper. T_AUDIT (HOST_NAME, APPLICATION_ID, INSTANCE_NAME, SID, SERIAL #, username, OSUSERID, MACHINENAME, PROGRAM, TERMINAL, LOGON_TIME) VALUES (: v_hostname,: v_application_id,: v_instance_name,: v_sid,: v_serial,: v_username,: v_osuserid,: v_machinename,: v_program,: v_TERMINAL,: v_logon_time) ';
    18 type c_audit_cur_typ is ref cursor;
    19 C_Audit c_audit_cur_typ;
    20 V_system_users_tab: = "T_SYSTEM_USERS";
    21 No_Audit_records Exception;
    Begin 22
    23 select table_name in v_Audit_tab_check from dba_tables where owner = 'DBAOPER' and table_name = "T_AUDIT";
    24 select table_name in v_system_users_tab_check from dba_tables where owner = 'DBAOPER' and table_name = "T_SYSTEM_USERS";
    25 c_Audit open for ' SELECT sid, serial # username, osuser, machine, terminal program v $ session WHERE audsid = userenv ("' sessionid" ') and program not as "'oracle@%J0%"' and no user name (select * from dbaoper.' |) V_system_users_tab |') and type! = "' BACKGROUND"' ';
    26 c_Audit of fetch in v_sid, v_serial, v_username, v_osuserid, v_machinename, v_program, v_TERMINAL;
    27 if c_Audit % Notfound then
    28 lift No_Audit_records;
    Else 29
    30 select host_name, instance_name in v_hostname, v_instance_name from v$ instance;
    31 select dbid from v_application_id from v$ database;
    32 select sysdate in double v_logon_time;
    33 execute immediate v_sql_Audit_upload using v_hostname, v_application_id, v_instance_name, v_sid, v_serial, v_username, v_osuserid, v_machinename, v_program, v_TERMINAL, v_logon_time;
    34 end if;
    35 close C_Audit;
    exception of 36
    37 when no_data_found then
    38 dbms_system.ksdwrt (2, 'ORA-20001 Audit T_AUDIT or T_SYSTEM_USERS not found Audit information tables are not entered'
    (39);
    40 what then No_Audit_records
    41 dbms_output.put_line ('Audit number to insert records");
    42 * end;
    SQL > /.

    WARNING: Trigger created with compilation errors.

    SQL > sho err
    Errors for TRG_AUDIT_LOGON TRIGGER:

    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    18/20 PLS-00103: encountered the symbol "=" when expecting one of the
    Next:
    constant exception < an ID >
    < a between double quote delimited identifiers > double Ref table Fedya
    char time timestamp interval date binary national character
    NCHAR
    The '< an identifier >' replaced with '=' to
    continue.


    Thank you
    Pramod

    replace * "' * with *" *. For example userenv ("' sessionid" ') to userenv ("sessionid")

  • Problem when creating objects to the point user clicks on the screen

    I'll sometimes have a problem when clicking on the screen and have an object at this time created. 95% of the time it works properly, but sometimes, the object is created in a different area of the screen.

    Everyone comes across something similar? Or is it likely to be just a problem with the Simulator?

    Thank you very much for any help offered.

    If you want a "newLabel" to appear in the contact details of your mouseEvent, but only if details of mouseEvent are lower on the screen (having a higher value) at the height of your textButton.

    If your TextButton object does not touch the top of the stage (y = 0), you'll want to write this instead:

    if (event.localY > textButton.y + textButton.height)
    

    It may be a good idea to write it anyway, just in case you want to change the position of the TextButton.

    In addition, localX and localY properties of your mouseEvent are compared to the event containing sprite.  for example, if you have a canvas Sprite that is a parent of your textButton and is tuned for the mouseEvent.  otherwise, if there is no sprite contains (second phase) for your event, you'll want to use stageX and stageY instead.

    I guess since I can't be sure of your intentions here, but try this instead:

    private function createItem(event:MouseEvent):void
         {
         if (event.stageY > textButton.y + textButton.height)
            {
            var newLabel:TextField = new TextField();
            newLabel.x = event.stageX;
            newLabel.y = event.stageY;
            newLabel.text = "test";
            newLabel.setTextFormat(userTextFormat);
    
            addChild(newLabel);
            }
         }
    
  • Problem when creating new connection of database with SQL Developer

    Hi all

    I am a beginner and I want to learn Oracle add up to my learning
    I installed SQL Developer on Linux Mint 12 (lisa).
    The installation went well, but when I try to create a new database connection in SQL developer, I get the following error:

    * Status: Failed - Test has failed: IO error. The network adapter could not establish the connection.* *.

    Could someone please suggest where exactly, I'm missing?

    Greetings - Vishal

    Have you installed the oracle database software locally? Have you created a database called "oracle?

    Developer SQL does not include a data base. For learning purposes, I recommend that you download Oracle Express Edition.

  • PL/Sql error when creating a trigger

    Hello everyone m trying to set a trigger whose goal is to not allow any update insert or remove on the work table, if the day is Sunday. I tried this code but it gives me error
     create or replace trigger No_work_on_Sunday
     After insert or update or delete
    on Work When owner='MAX'
    for each row
    begin
            if (select to_char(sysdate,'D')=1) then
                     raise_application_error(-20001,'no work on sunday');
          end if;
     end;
    
     
     on Work when owner='MAX'
             *
    ERROR at line 3:
    ORA-04077: WHEN clause cannot be used with table level triggers
    Pls help

    Published by: 781207 on July 16, 2010 07:43
    create or replace trigger No_work_on_Sunday
     After logon on DATABASE
     begin
           if to_char(sysdate,'D')=1 then
                     if ora_login_user IN ('Jake','MAX') THEN
                         RAISE_APPLICATION_ERROR(-20001,'No work on sunday');
                   end if;
          end if;
    end;
    /
    

    SY.

  • Problems when creating extension using pim contact webworks API

    Hello

    I need to create an extension that use webworks APIs to get all contact data as well as launch the contact selector and must obtain the name of the contact, numbers and Base 64 of contact image chain.

    Now, I have a few quesries below:

    1. I tried to reach my api requirement with webworks. For this, I did changes in the config.xml file.



    <>ermissions >
    <>Ermit > access_pimdomain_contactsermit >
    ermissions >

    and able to access the API of pim.contact placed here: C:\Program Research In Motion\BlackBerry 10 WebWorks SDK 1.0.4.11\Framework\ext\pim.contacts

    But when I tried to get all contacts by using the getContactAccounts() method, it gives me two accounts simcontacts and LocalContacts and their identity papers are respectively 2 and 19.

    I found that I can get the list of contacts using the example of the contacts. but this is to limit the length to 20.

    http://supportforums.BlackBerry.com/T5/Web-and-WebWorks-development/need-help-with-BB10-WebWorks-con...

    2.i have not found any documentaion appropriate for the fields of my contact: name, numbers and Base 64 of contact image chain like the way they gave in the native SDK documentation.

    Please share any code example that is in all fields of contact data of Singla retrieving.

    3. I need to share my contact plugin and need to expose certain methods of my plugin webworks.

    How can I reach it?

    Is it possible to get the code side native for pim.contact plugin, so that I can add methods more in it and can expose these methods more Web app works by making the required in index.js and client.js chnages.

    Help, please.

    I checked and there seems to be a problem with the API that has been fixed for version Gold SDK. Here you can find a similar position:
    http://supportforums.BlackBerry.com/T5/Web-and-WebWorks-development/need-help-with-BB10-WebWorks-con...

    And more information on the real fix here:
    https://github.com/BlackBerry/Cordova-BlackBerry-plugins/pull/80

    It seems that it was default 0, which gave 20 results, as opposed to-1, the expected default value.

    For now, if you simply pass a high value for limit, which should get the contacts (i.e. 1000). I know that's not ideal, but a workaround for now.

    For plugins, the best starting point would be the following.

    WebWorks SDK 1.0:
    https://github.com/BlackBerry/WebWorks-community-APIs/tree/master/BB10/template

    WebWorks SDK 2.0:
    https://github.com/BlackBerry/WebWorks-community-APIs/tree/master/BB10-Cordova/template

  • Problem when creating a report with a date of schduled

    When I tried to create a report with a schedule (any option except now) I get the error 'Date of the first report occur must be after or equal to the current date", unless I have use a date of 01-10-2012 or later in the first report occurs on the field.  Current date is 2012-08-23.

    Let me know if you can recreate it and if or when there is a fix.

    Hi Tim,.

    We have fixed the problem now. Could you please check that you are able to schedule a report now with start date of today?

    Thank you

    The OnPlus team

  • Please, I was faced with problems when creating a new book in Indesign CS6!

    Hello! I'm going to talk to you about my problem: I work for a COMPUTER company in the Brazil and we have developed a five - hundred page manual in Indesign CS6 software.

    Then, we decided that each chapter would be an .indd (document Indesign CS6) and that these 27 chapters would be part of a book (.) INDB).

    Finally, we got our book in the first revision (.) (PDF). In June, we copied our first revision in order to create a second.

    We recorded the second revision of the book (.) INDB) in June 2013. Now, in September, we tried to open this book, once again, to no avail...

    The second revision opens the first review! It's as if we have not saved our second revision, but I'm sure that we did.

    So, please I would like to know:

    (1) what we were wrong in this whole process of creation of new books;

    (2) if it is possible to import a PDF in Indesign CS6, because our PDF is right, but we have our unchangeable.

    I'll be grateful for any help!

    Thanks in advance!

    Making copies does not work the way you think that with books.

    A file .indb is naoual a collection of pointers to the individual files and make a copy, even if you copy individual files, not is not updated where the .indb showed up.

    There are two options here. PACKAGE the book and again work package, or make a new .indb file and add your copied .indd files.

  • Problem when create or open an image file

    Hi! You can watch this video first of all on the problem: http://youtu.be/OR3uSqRIEZs

    How should I solve this? Everything I create a new document, open a PSD or another file, Photoshop still got black.

    I installed the latest update and even to reinstall Photoshop.

    PS: I had this problem after installing a new RAM, she was wearing?

    Thank you very much for your help!

    Some information:

    Windows 7 ultimate 64-bit

    Photoshop CS6 64bits

    , You update the driver from the Intel Web site, or elsewhere?

    And have you tried to disable the GPU in Photoshop preferences?

Maybe you are looking for