Triggers in Stored Procedures

Hi,
I am trying to execute the following procedure:
create or replace procedure create_view_trigger (viewname IN varchar2, triggername IN
varchar2, emp_number IN emp.empno%TYPE ) is
sql_statement varchar2(200);
view_name varchar2(100);
sql_statement1 varchar2(10000);
trigger_name varchar2(100);
begin
view_name := viewname;
sql_statement := 'create or replace view ';
sql_statement := sql_statement || view_name ||' as select * from emp';
dbms_output.put_line('View is created');
execute immediate sql_statement;
trigger_name := triggername;
sql_statement1 := 'create or replace trigger ';
sql_statement1 := sql_statement1 || trigger_name ||' instead of update on ';
sql_statement1 := sql_statement1 || view_name ||' referencing new as n for each row';
sql_statement1 := sql_statement1 || ' DECLARE employeenumber emp.empno%TYPE;';
sql_statement1 := sql_statement1 || ' BEGIN';
sql_statement1 := sql_statement1 || ' employeenumber = emp_number;';
sql_statement1 := sql_statement1 || ' UPDATE employee_info SET sal = sal+20';
sql_statement1 := sql_statement1[i]Long postings are being truncated to ~1 kB at this time.

I don't have much experience with Lite, but I'm running 9i Personal Edition. Any information about triggers can be found in the "ALL_TRIGGERS" view. You will want to filter out any rows where OWNER = 'SYS' unless you created your triggers as SYS. As for procedures and functions, you can see what you have created in the "ALL_OBJECTS" view where OBJECT_TYPE = 'PROCEDURE' or 'FUNCTION', once again filtering out rows where OWNER = 'SYS'. To see the code of any procedure or function, select substr(text,1,80) from ALL_SOURCE where NAME = 'function name' ORDER BY LINE.
Hope this helps!

Similar Messages

  • Report with stored proc running multiple stored procedures with insert statement

    Hi,
    I wonder if this is possible in SSRS ... I use the 2012 version (Data Tools).
    I have a report that triggers a stored procedure. See below.
    Within this SP there are 2 insert statements getting data from 2 other SP's.
    When I make a dataset referring to the main SP below, SSRS does not show me any fields at all.
    Is this because it's a SP with insert statements and nested SP's?
    At the end of the SP I make a select so it should see all the fields.
    The parameters @month and @costcenter are multivalue params. I use a special function to convert the multivalues, selected in the report, into a string to pass it correctly to the query (comma separated).
    USE [TestDB]
    GO
    /****** Object:  StoredProcedure [dbo].[_Pink_SP_StandingsRegisterDataset]    Script Date: 15-4-2014 13:31:30 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[_Pink_SP_StandingsRegisterDataset]
    @year INT,
    @month NVARCHAR(50),
    @costcenter NVARCHAR(500),
    @GLaccount NVARCHAR(9)
    AS
    BEGIN
    /* Remove existing content*/
    DELETE FROM _Pink_TB_StandingsRegister
    /* Add records part 1 */
    INSERT INTO _Pink_TB_StandingsRegister
    EXEC _Pink_SP_StandingsRegister @year, @month, @costcenter, @GLaccount
    /* Add records part 2 */
    INSERT INTO _Pink_TB_StandingsRegister
    Type,
    Row,
    Year,
    Month,
    YearDatetable,
    MonthDatetable
    EXEC _Pink_SP_StandingsRegisterDatetable @year
    /* Select all records */
    SELECT *
    FROM _Pink_TB_StandingsRegister
    END
    GO

    Hi bijntjede2e,
    After testing a similar scenario in my own environment, it works well in Reporting Services. In my test, the stored procedure returns all the fields from _Pink_TB_StandingsRegister table in the dataset. Then I select some values from year, month, costcenter
    and Glaccount parameters, it inserts some values in the _Pink_TB_StandingsRegister table. So we can use this stored procedure as the dataset in the report.
    In order to solve the problem more efficiently, I need to clarify some information.
    Are you pass multiple values parameter to one stored procedure correctly? We can refer to the following thread:
    http://social.technet.microsoft.com/Forums/en-US/dbdfa101-cccc-4e9f-aa50-566dc5ebcc27/ssrs-2008-r2-report-dataset-call-a-stored-procedure?forum=sqlrep
    What results are you get when executing the stored procedure in SQL Server Management Studio? Is it works well? We should double those stored procedures.
    If there are any misunderstanding, please elaborate the issue for further investigation.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • C-stored procedure in Oracle

    Dear Friends,
    I have a lot of c-stored procedures for DB2,
    now,I want to use these c-stored procedures in Oracle directly without any changes.
    I'm not sure whether this method is right.
    Please help me.
    Guang

    I think, that the best way inclusion of business logic into ORACLE database as a TABLE-constraints, triggers and stored procedures for guaranteeing data integrity.
    But if you have really a LOT of c-stored procedures and you need provide quick startup with ORACLE, than you can use your c-procedures as "external calls" with ORACLE.
    Unfortunately I don't know DB2 c-stored procedures specifics and can't give finally recommendations for you.
    Sincerely, Urry

  • How to migrate MySQL stored procedure to Oracle

    Hi All,
    I migrated mysql 5.1.42-enterprise-gpl-advanced DB to oracle using sqldeveloper 3.1.07 tool.
    DB objects migrated successfully except Stored Procedures.
    I verified .sql and Out files.. Capture process not captured stored procedures SQL.
    Could you please suggest, where I can verify exact error or how to fix this issue.
    Thanks in advance.

    Hi,
      The SQL*Developer version you are using is an old one and you should use the latest version available from this link -
    Oracle SQL Developer
    However, even the v4 version does not support the migration of MySQL stored procedures as shown in this link -
    http://www.oracle.com/technetwork/developer-tools/sql-developer/supportedmigplatforms-086703.html
    You will have to manually convert the MySQL stored procedures to an Oracle format, as even the 'Scratch Editor' under 'Tools - Migration' - does not have an option for MySQL conversion.
    The documentation has details of the difference between MySQL and Oracle stored procedures -
    Oracle® SQL Developer Supplementary Information for MySQL Migrations
    in the chapter Triggers and Stored Procedures
    Regards,
    Mike

  • Java stored procedures and triggers in lite

    Hi
    We are using java stored procedures and java triggers in our application for oracle lite database 5.1.
    We would like to know whether these procedures and triggers are uploaded or associated with tables or not because triggers are not being fired for the tables.
    The question is - how to find the uploaded procedures and triggers in system tables.
    We dont find any tables like (all_objects, user_objects) for this in oracle lite system catalogs given in the documentation.
    thanks in advance
    yugandhar

    I don't have much experience with Lite, but I'm running 9i Personal Edition. Any information about triggers can be found in the "ALL_TRIGGERS" view. You will want to filter out any rows where OWNER = 'SYS' unless you created your triggers as SYS. As for procedures and functions, you can see what you have created in the "ALL_OBJECTS" view where OBJECT_TYPE = 'PROCEDURE' or 'FUNCTION', once again filtering out rows where OWNER = 'SYS'. To see the code of any procedure or function, select substr(text,1,80) from ALL_SOURCE where NAME = 'function name' ORDER BY LINE.
    Hope this helps!

  • Java Stored Procedures and Triggers

    I want to to use Java stored procedures and triggers within the Oracle 11g XE
    So please , someone can help me because i tried but it didn't work
    I don't know where is the problem
    Thanks !!

    WRONG FORUM!
    Welcome to the forum but this forum is for Java JDBC questions and issues. Your question should be posted in the SQL and PL/SQL forum
    PL/SQL
    >
    I want to to use Java stored procedures and triggers within the Oracle 11g XE
    So please , someone can help me because i tried but it didn't work
    I don't know where is the problem
    >
    Mark this question ANSWERED and repost the question in the other forum
    Before you post review the Oracle Database Java Developer's Guide - it shows how to create Java stored procedures and has example code
    http://docs.oracle.com/cd/B28359_01/java.111/b31225/chfive.htm
    And in the new post don't just say "I tried but it didn't work". You need to post the code that you tried and what you mean by "didn't work".
    If you got any exceptions or errors you need to post a copy of the exact message or error that you are getting.

  • Would RollBacks For Stateless Session Beans work In case of Stored Procedures or Triggers Written in Oracle PL/SQl

              We are writing a J2EE application and using Weblogic 5.1 on Unix machine. We are
              considering writing some Stored Procedures or Triggers on Oracle DBMS. Hence our
              Stateless Session Beans / Data Access Objects (DAOs) would be calling those stored
              procedures, which would reside on Oracle 8.1.7 (on Windows 2000). (These Data
              Access Objects are running under the umbrella of a Stateless Session Beans). We
              are using WebLogic's Connection Pooling.
              Our question is: Would we get reliable rollbacks from our stored procedures. I
              mean would the Transaction Management process of the EJB container work. Remember
              the SQL is written in the Database (Oracle in this case) in the form of Stored
              Procedures / Triggers through PL/SQL.
              Any ideas or tips would help.
              

              I would agree with Cameron Purdy. Be very cautious to use Oracle specific
              Triggers / Stored Procedures. Consider following, (apart from what he said):
              1. Unreliable behaviour of the Oracle JDBC drivers, specially 8.1.6 family..
              (You may visit the Oracle's web site and see the newsgroups for the JDBC drivers).
              This is enough of a reason to stop right there.
              However for interest sake you may consider following issues:
              2. By use of Oracle specific Triggers / SPs the application will not be portable.
              Vendor Lock In. Remember your choice for J2EE compliant Server (WebLogic in this
              case). The whole purpose would be defeated by going for this option.
              3. There are issues related to the extensibility of the application. I have
              my reservations and would hold my breath on two phase commit protocol transactions
              being reliable in this scenario.
              Have fun...
              Terry
              "Cameron Purdy" <[email protected]> wrote:
              >Yes, the work performed by the SPs and the triggers would be in the same
              >tx.
              >
              >What would NOT work is if the data has been read into WebLogic and then
              >it
              >gets affected by a trigger or SP on the RDBMS, the data in WebLogic is
              >not
              >automatically re-read within that same tx so you need to be careful.
              >
              >Peace,
              >
              >--
              >Cameron Purdy
              >Tangosol Inc.
              >Tangosol Coherence: Clustered Coherent Cache for J2EE
              >Information at http://www.tangosol.com/
              >
              >
              >"Ahmad" <[email protected]> wrote in message
              >news:[email protected]...
              >>
              >> We are writing a J2EE application and using Weblogic 5.1 on Unix machine.
              >We are
              >> considering writing some Stored Procedures or Triggers on Oracle DBMS.
              >Hence our
              >> Stateless Session Beans / Data Access Objects (DAOs) would be calling
              >those stored
              >> procedures, which would reside on Oracle 8.1.7 (on Windows 2000). (These
              >Data
              >> Access Objects are running under the umbrella of a Stateless Session
              >Beans). We
              >> are using WebLogic's Connection Pooling.
              >> Our question is: Would we get reliable rollbacks from our stored
              >procedures. I
              >> mean would the Transaction Management process of the EJB container
              >work.
              >Remember
              >> the SQL is written in the Database (Oracle in this case) in the form
              >of
              >Stored
              >> Procedures / Triggers through PL/SQL.
              >> Any ideas or tips would help.
              >
              >
              

  • Can i use Stored procedures and triggers with SDK

    hi all
    How to use the stored procedure and Triggers with SDK, can i get a sample code
    Regards
    Salah

    Hi, Salah.
    Use "Exec" in your query to run procedures.
    SAPbobsCOM.Recordset     oRS;
    oRS = (SAPbobsCOM.Recordset)pCmp.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
    oRS.DoQuery ("EXEC YourStoredProcName");
    Triggers are not supported in SDK.
    Regards,
    Aleksey

  • Stored Procedures, Triggers and Functions

    Can someone tell me the name of the table(s) in which procedures, functions and triggers are stored?

    Procedure and function in USER_SOURCE
    triggers in USER_TRIGGERS
    Can someone tell me the name of the table(s) in which procedures, functions and triggers are stored?

  • Triggering and Stopping a Stored Procedure

    I'm setting up a mass mailing system for approx 250,000
    users.
    I need to find a way to trigger a stored procedure to run
    every 5 miuntes untill the task is complete. The idea being that
    once triggered it'll work its merry way through the database firing
    off a couple of thousand emails each cycle untill it's reached the
    end.
    Any ideas how to implement this?
    Thanks

    Generally, the term "stored procedure" is used to mean a
    piece of SQL code that is stored and run in the database server. It
    sounds like what you mean is a ColdFusion Scheduled Task - a piece
    of CF code that is run automatically. You can set these up using
    either the CF administrator or the <cfschedule> tag. Breaking
    up your mailings is a good idea since CF will probably time out if
    you try to execute 250,000 mailings at once. You could do something
    like this:
    1) If unsent records, do:
    2) Select X number of unsent records
    3) Send mail
    4) Update X records as having been sent
    You would just have to make sure that you time it correctly,
    otherwise you could wind up with 1 process starting before the
    other finishes and some people will get duplicate emails.

  • How to create a stored procedure that contains all 3 AFTER Triggers Update/Insert/Delete ?

    Hi guys, I'm trying to create a Stored procedure that will automatically add all 3 After triggers when executed on any given database, can someone please explain and give an example on how do I go about doing this ? I'd also like it to raise any errors
    that may come across, thanks in advance.

    Lets start with the question why do you need the triggers at all. Since SQL Server 2005 we can use an OUTPUT clause.
    This code can be re-written in SQL Server 2005 using the OUTPUT clause like below:
    create table itest ( i int identity not null primary key, j int not null unique )
    create table #new ( i int not null, j int not null)
    insert into itest (j)
    output inserted.i, inserted.j into #new
    select o.object_id from sys.objects as o
    select * from #new
    drop table #new, itest;
    go
    Now from this example, you can see the integration of OUTPUT clause with existing DML syntax.
    Another common scenario is auditing of data in a table using triggers. In this case, the trigger uses information from the inserted and updated tables to add rows into the audit tables. The example below shows code that uses OUTPUT clause in UPDATE and DELETE
    statements to insert rows into an audit table.
    create table t ( i int not null );
    create table t_audit ( old_i int not null, new_i int null );
    insert into t (i) values( 1 );
    insert into t (i) values( 2 );
    update t
       set i  = i + 1
    output deleted.i, inserted.i into t_audit
     where i = 1;
    delete from t
    output deleted.i, NULL into t_audit
     where i = 2;
    select * from t;
    select * from t_audit;
    drop table t, t_audit;
    go
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Triggers accepting parametes from stored procedures

    Can triggers accept parameters from stored procedures like some filename or column name of a table and pass them to external c procedures.If so I would greatly appreciate if any one could provide me with an example.
    P.S The trigger is on a view and the view which in turn should be created in the stored procedure.
    Thanks
    Harini

    Hello,
    Yes you can invoke Web Services from the database, it is often called "Database Web Service call out" and it is documented in the Web Services Developer Guide
    Regards
    Tugdual Grall

  • Calling a stored procedure before row update without using triggers

    I have got two tables Main Table(Table1) and History Table(Table2), whenever an update is done on Table1 i want to insert the old row before update to Table2, so that i have history available for that record.
    My doubt is
    how to refer to old value (values b4 update) in a stored procedure?
    how to call a stored procedure b4 every row update(on the database side as we do with tiggers)?
    I want to write a stored procedure where in i will insert the old row values ( value b4 update ) to Table2.
    Any Help would be great....

    sample code calling procedure before insert:
    DriverManager.registerDriver(new someDriver);
    Connection conn = DriverManager.getConnection(driver,uname,pword);
    CallableStatement cs = conn.prepareCall("{call procedureName(?,?)}");
              cs.setString(1,userName);
              cs.registerOutParameter(2,Types.VARCHAR);
              cs.execute();
              success = cs.getString(2);
              PreparedStatement pstmt = conn.prepareStatement("insert into sometable values(?,?)");
              pstmt.setString(1,userName);
              pstmt.setString(2,password);
              pstmt.executeUpdate();     
              conn.commit();      
              cs.close();
           conn.close();

  • Triggers, Stored Procedures and Java

    Hi all.
    I started developing some useful (at least for me) Java Package, and I'm wondering if I'm doing the right thing.
    Let's say that I have a trigger that calls a Stored Procedure that calls a Java Package.
    Let's say that the Java Package can be used by more than one Oracle Schema.
    So, my question is:
    Should I load the package in every Schema ? Or should I load the package in the System (for instance) schema, creating synonyms for it (if possible) ? Or should I create both the package and the Stored Procedure in System, creating synonyms for the procedure ?
    I'm a little stuck in this....
    Another question : when my trigger fires, it launch the Stored Procedure and, consequently, my Java Package.... At this point, am I in the same transaction of the trigger ? Or the Java Package start a new "subtransaction" ?
    Thanks in advance for Your help.
    Best Regards
    Fabio GRANDE

    Do not create anything in the System schema. Create the package and procedure in one schema and create a public synonym that the other schemas can use to access it.
    And yes the trigger and anything it executes are all part of the same transaction. As long as none of the procedures are declared as an autonomous transaction, in which case that procedure would be a separate transaction.

  • PowerShell SQL script to replace text in Triggers, Stored Procedure, can't get match

    I think my issue is with matching text and regular expression, any help would be appreciated.
    $server = "BOCADBD2";    
    # The SQL Server instance name
    $database = "SYSDB"; # The database name
    $matchText = "(raiserror\s@errno\s@errmsg)";
    # Definition text to search .Be aware this accepts a regular expression
    $replaceText =  "raiserror (@errmsg,16,1)";
    # Text to replace $matchText
    $alter = $false; # Set to true if you want the script to alter database objects
    $backupFolder = "v:\RaiseErrorTest\";
    # Change script folders. Need a \ (back slash) on the end
    $changeFolder = "v:\RaiseErrorTest\";
    # One file per object, backup & change folders
    $Hold = $matchText;
    # Load the SQL Management Objects assembly (Pipe out-null supresses output)
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null
    # Create our SMO objects
    $srv = New-Object "Microsoft.SqlServer.Management.SMO.Server" $server;
    $db = New-Object ("Microsoft.SqlServer.Management.SMO.Database");
    # Get the database
    $db = $srv.Databases[$database];
    # For each stored procedure in the database
    foreach($proc in $db.StoredProcedures)
    # For each matching stored prcoedure
    if($proc.TextBody -match $matchText )
    Write-Host $matchText;
    Write-Host "Processing proc: " $proc.Name;
    # Backup of the original proc definition
    $proc.Script() | Out-File ($backupFolder + "procs\" + ([string]$srv.name -replace("\\", "_")) + "_" + [string]$db.Name + "_" + [string]$proc.name
    + "_backup.sql");
    # New procedure definition sql
    $proc.Script() -replace($matchtext, $replaceText) | Out-File ($changeFolder + "procs\" + ([string]$srv.name -replace("\\", "_")) + "_" + [string]$db.Name + "_"
    + [string]$proc.name + ".sql");
    # If set to true this will change the procedure definition on the server!
    if($alter)
    $proc.TextBody = $proc.TextBody -replace($matchtext, $replaceText);
    $proc.Alter();
    Write-Host "Altered " $proc.Name;

    I think $matchText is incorrect so I never get a match and was hopping for any suggestions.
    $replaceText  may be incorrect also, have looked for many hours on internet with no luck.
    How can we know if it is correct.  We cannot see the target text. Try it with an example of the test you are looking for.
    Your match only matches: "raiserror @errno @errmsg"
    And no other string.
    ¯\_(ツ)_/¯

Maybe you are looking for