What is difference between triggers and stored procedures.
And advantages of SP over triggers ?
Answers were Sorted based on User's Feedback
Answer / anil_abbireddy
1. Triggers are Table dependent,But Procedures are Not
2. We can not pass Parameters through Triggers,But in case
of sp we can pass no.of parameters
3. We can not execute triggers explicitly,but ps we can
4. we can not place transaction processing statments in
triggers(commit,collback,save point), but in ps. we can
5. we cannot overload triggers, but we can overload
functions & procedures using packages.
| Is This Answer Correct ? | 44 Yes | 8 No |
Answer / ravi singh
Procedures:
- A procedure is PL/SQL block which is used to process a value and need to execute explicitly.
- Procedure can be call when required and it don't have any dependency on any DML operations on any table.
- Procedure can be called from any area of the code.
- You can pass IN/OUT parameters to the procedure through which you can use the output of the procedures.
Triggers:
- Triggers are PL/SQL block which are based on the events and got executed on the happening of any DML event on the specific table.
- They cannot be called or you cannot stop them from execution.
- You can write commit in the triggers with the help of autonomous transaction only.
- You can refer the values of the table with whom the trigger is linked with the help of :new and :old variables.
Advantages and Disadvantages: They both are mentioned in the above two posted answers.
But one main advantage of triggers over procedures is if you want to perform any action on the DML event of any table you should use triggers as you dont need to make a seperate call for your code.
One main disadvantage of triggers you cannot stop them being executed if you want to do it you have to explicitly disable the trigger.
| Is This Answer Correct ? | 8 Yes | 3 No |
Answer / sohail
1.Procedure is a subrotine which completly utilises the
concept of stack.
2.Procedure can be called any time when required where as
trigger once created we cannot stop the trigger to fire
when not required.
3.triggers are fired implicitly where as procedure are
called explicitly by procedure name when required.
4.the p_code of procedure is stored in oracle SGA and can
be global to others.
| Is This Answer Correct ? | 14 Yes | 11 No |
Answer / jaya
1) Stored procedures can accept parameters and can return values. Triggers can neither accept parameters nor return values.
2) A Trigger is dependent on a table and the application has no control to not fire a trigger when not needed. On the other hand, a stored procedure can be called as needed.
3) Procedure runs only when one call them manually whereas a trigger runs when there is any activity(insert,update,delete) on table on which the trigger is written.
4) Firing of a stored procedure can be controlled whereas on the other hand trigger will get fired whenever any modification takes place on the table.
| Is This Answer Correct ? | 4 Yes | 1 No |
What is sqlca in db2?
i have xml source. xml source having lacks of records. i want extract/retrive xml source data using sql query. please tell me how to write query.
How to select random rows from a table?
what is global variable in pl/sql
What is Materialized View? In What Scenario we Use Materialized View?
Explain what is a view?
What is the primary use of normalization?
Can we join more than 2 tables in sql?
What is cross join sql?
Table1: Col1 col2 1 2 10 3 4 89 5 6 Table:2 Col1 col2 3 2 9 5 4 7 6 87 With the help of table1 and table2 write a query to simulate the fallowing results. Output1: Col1 col2 1 2 2 3 3 4 4 5 5 6 Output2: Col1 col2 2 3 10 4 5 89 6 7 1.Write query for single row to multiple row using sql statements. Eg:a,b,c,d,e,f Change to A B C D E F 2. Write query for multiple row to single row using sql statements. Eg2 A B C D E F Change to Eg:a,b,c,d,e,f Table1: Col1 col2 8 5 2 9 4 2 5 1.Write a query to select all the rows from a table1,if the value of A is null then corresponding B’s value should be printed in A’s value.if the value of A is null in that table then corresponding B’s value should be printed as 30. 2. write a query to find the sum of A and B .display the max among both. 3.write a query to find total number of rows from table 1. Note: if any column value is null in a row then that row should be considered as 2 rows. 4.write a query to display all the records of table1 except A containg 2 as well B containg 5. 5.rewrite the fallowing without using join and group by. Select b.title,max(bc.returneddate –bc.checkoutdate)” mostdaysout” From bookshelf_checkout bc, Book shelf B Where bc.title(+)=b.title Group by b.title. 6.rewrite fallowing query Select id_category from category_master X where exists (select 1 from sub_category Y where X.id_category=Y.id_category) Customer: Name phone1 phone2 phone3 bitwise A 23456 67890 12345 --- B 67459 89760 37689 --- Don’t_call Col1 67890 37689 1.q) update the customer table of bitwise with 1 or 0. Exists in don’t_call table menas show -1 Other wise -0. Output. Name bitwise A 010 B 010
define sql insert statement ? : Sql dba
Explain foreign key in sql?
Oracle (3259)
SQL Server (4518)
MS Access (429)
MySQL (1402)
Postgre (483)
Sybase (267)
DB Architecture (141)
DB Administration (291)
DB Development (113)
SQL PLSQL (3330)
MongoDB (502)
IBM Informix (50)
Neo4j (82)
InfluxDB (0)
Apache CouchDB (44)
Firebird (5)
Database Management (1411)
Databases AllOther (288)