Professional Documents
Culture Documents
1. Before
2. After
3. ROW
4. Table
5. INSERT
6. UPDATE
7. DELETE
8. ALL
9. BEFORE ALL ROW INSERT
10. AFTER ALL ROW INSERT
11. BEFORE INSERT
12. AFTER INSERT
=============================================
The main difference between statement level trigger?
2. Using self-join
3. Using row_number()
4. Using dense_rank()
Here you can use both rank() and dens_rank() since both will give unique records
when order by rowid.
5. Using group by
10 Bill 2000
11 Bill 2000
12 Mark 3000
13 Mark 3000
SELECT *,
FROM emp
AS OF TIMESTAMP TO_TIMESTAMP('14-OCT-2015 02:00:00');
----------------------------------------------
* last day of the year
SELECT ADD_MONTHS (TRUNC (SYSDATE, 'YEAR'), 12) - 1 "Year Last Day" FROM DUAL;
-----------------------------------------
* number_of_days in month
SELECT CAST (TO_CHAR (LAST_DAY (SYSDATE), 'dd') AS INT) number_of_days
FROM DUAL;
-------------------------------------------------
--OR
--OR
SELECT LEVEL
FROM dual
======================
avinash.more@irclass.org,
deepa.palmar@irclass.org
===================================================================================
==========================================================
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
TYPE t_collection IS VARRAY(5) OF NUMBER(10);
l_coll t_collection;
l_idx NUMBER;
BEGIN
-- Initialise the collection with two values.
l_coll := t_collection(1, 2);
-- Traverse collection
l_idx := l_coll.FIRST;
<< display_loop >>
WHILE l_idx IS NOT NULL LOOP
DBMS_OUTPUT.PUT_LINE('The number ' || l_coll(l_idx));
l_idx := l_coll.NEXT(l_idx);
END LOOP display_loop;
END;
===================================================================================
==============================================================
MARGE QUERY
MERGE INTO bonuses b
USING (
SELECT employee_id, salary, dept_no
FROM employee
WHERE dept_no =20) e
ON (b.employee_id = e.employee_id)
WHEN MATCHED THEN
UPDATE SET b.bonus = e.salary * 0.1
DELETE WHERE (e.salary < 40000)
WHEN NOT MATCHED THEN
INSERT (b.employee_id, b.bonus)
VALUES (e.employee_id, e.salary * 0.05)
WHERE (e.salary > 40000);
===================================================================================
=============================================================
order by city any order on top
===================================================================================
===============================================================
sort Array in Oracle
DECLARE
TYPE LV_ARRAY_TYPE IS VARRAY(10) OF NUMBER;
LV_ARRAY LV_ARRAY_TYPE := LV_ARRAY_TYPE(17, 50, 51, 16, 3, 4, 1, 2, 9, 6);
SEARCHED BOOLEAN;
TEMP NUMBER;
J NUMBER:=0;
BEGIN
LOOP
BEGIN
SEARCHED := FALSE;
J := J + 1;
FOR I IN 1 .. LV_ARRAY.COUNT-J LOOP
IF (LV_ARRAY(I) > LV_ARRAY(I + 1)) THEN
BEGIN
TEMP := LV_ARRAY(I);
LV_ARRAY(I) := LV_ARRAY(I + 1);
LV_ARRAY(I + 1) := TEMP;
SEARCHED := TRUE;
END;
END IF;
END LOOP;
EXIT WHEN SEARCHED = FALSE;
END;
END LOOP;
FOR I IN 1 .. LV_ARRAY.COUNT LOOP
DBMS_OUTPUT.PUT_LINE(LV_ARRAY(I));
END LOOP;
END;
===================================================================================
====================================================================
To find out Given Input is String or Number?
=============================================================================
suffel order by
===================================new concepts=====================
oracle DBMS_SCHEDULAR
begin
DBMS_SCHEDULER.create_job(
job_name =>'t',
job_type =>'plsql_block',
job_action => 'insert into A values(a1.nextval,a2.nextval);',
start_date => sysdate,
repeat_interval => 'freq = secondly ;interval =5',
enabled => true);
end;
exec DBMS_SCHEDULER.disable('t');
exec DBMS_SCHEDULER.enable('t');
exec DBMS_SCHEDULER.drop_job('t');
======================================================
first employee of each department
=====================REGEXP_LIKE==============================
select * from EMPLOYEES where not regexp_like(PHONE_NUMBER,'[[:digit:]]{3}.
[[:digit:]]{3}.[[:digit:]]{4}');
======================SQL Loader=========================
inserting data from multiple-file---and multiple-tables------------
load data
infile '/home/ramesh/employee.txt'
infile '/home/ramesh/newemployee.txt'
into table employee
fields terminated by ","
( id, name, dept, salary )
-------------------------
load data
infile '/home/ramesh/employee-bonus.txt'
into table employee
( id position(1:3),
name position(5:10),
dept position(12:21),
salary position(23:26))
into table bonus
( id position(1:3),
bonus position(28:31))
----------------------------
sqlldr scott/tiger control=/home/ramesh/sqlldr-multiple-tables.ctl