Вы находитесь на странице: 1из 2

SQL query to display all months between two Dates.

(Suppose Start Date = 01-JAN-


2014 and End Date = 31-JUL-2014)
SELECT TO_CHAR( ADD_MONTHS( TO_DATE(' 01-JAN-2014', 'DD-MON-YYYY'), ROWNUM - 1),'
MON-YY') "DATE" FROM DUAL CONNECT BY
ADD_MONTHS( TO_DATE(' 01-JAN-2014', 'DD-MON-YYYY')-( EXTRACT( DAY FROM TO_DATE('
01-JAN-2014', 'DD-MON-YYYY')) -1), ROWNUM - 1)
< = (TO_DATE(' 31-JUL-2014', 'DD-MON-YYYY'));

(OR) select to_char( add_months( to_date(' 01-JAN-2014',' DD-MON-YYYY'), level-1),'


MON-YY')
from dual CONNECT BY level < = to_char( to_date(' 31-JUL-2014',' DD-MON-YYYY'),'
mm')-to_char( to_date(' 01-JAN-2014',' DD-MON-YYYY'),' mm') + 1;

SELECT TO_CHAR( A,' MON') FROM TEST ORDER BY TO_CHAR( A,' MM');

SQL Query to Fetch Numeric Data from String value

select regexp_replace(' 1DA2SDJD + 4567@@## HGSD89HH0','[ ^ 0-9]') as A FROM


dual;

SQL Query to Fetch Character Data from String value [Suppose String value is:
1DA2SDJD + 4567@@## HGSD89HH0] select regexp_replace(' 1DA2SDJD + 4567@@##
HGSD89HH0','[ ^ A-Z]') as a FROM dual;

SQL Query to find duplicate data quarter-wise from a table.

SELECT * FROM TEMP WHERE (STOCK_NO, TRUNC( CREATION_DATE,' Q'))


IN( SELECT STOCK_NO, TRUNC( CREATION_DATE,' Q') FROM TEMP GROUP BY STOCK_NO, TRUNC(
CREATION_DATE,' Q') HAVING COUNT( STOCK_NO) > 1) ORDER BY STOCK_NO;

SQL query to convert comma separated row data into column.

with t as (select col1 from table1)


SELECT REGEXP_SUBSTR( col1,'[ 0-9] + |[ a-z] + |[ A-Z] +', 1, lvl) "COL1" FROM
(SELECT col1, level lvl FROM t CONNECT BY level < = LENGTH( col1) -
LENGTH( REPLACE( col1,' |')) + 1); (OR) with t as (select 'john, sunny, karan,
peter, watson' from dual) SELECT REGEXP_SUBSTR(' john, sunny, karan, peter,
watson','[ 0-9] + |[ a-z] + |[ A-Z] +', 1, lvl) "COL1" FROM (SELECT 'john, sunny,
karan, peter, watson', level lvl FROM t CONNECT BY level < = LENGTH(' john, sunny,
karan, peter, watson') - LENGTH( REPLACE(' john, sunny, karan, peter, watson',','))
+ 1);

SQL query to convert column data into row data with comma separated.

SELECT LISTAGG (col1, ',') WITHIN GROUP (ORDER BY ROWID) "COLUMN TO ROW" FROM
table1;

SQL query to extract Day, Month and Year from date in Oracle [Suppose Date Time
Field value is 17-Nov-2014 15: 35: 26] Query to fetch day from date: select
extract (day from to_date(' 17-Nov-2014 15: 35: 26', 'DD-MON-YYYY HH24: MI:SS'))
"DAY" from dual;

Query to fetch month from date: select extract (month from to_date(' 17-Nov-2014
15: 35: 26', 'DD-MON-YYYY HH24: MI:SS')) "MONTH" from dual;

Query to fetch year from date: select extract (year from to_date(' 17-Nov-2014 15:
35: 26', 'DD-MON-YYYY HH24: MI:SS')) "YEAR" from dual;

SQL query to extract Hours, Minutes and Seconds from date in Oracle Query to fetch
hour from date: select extract( hour from cast( to_date(' 17-Nov-2014 15: 35: 26',
'DD-MON-YYYY HH24: MI:SS') as timestamp)) "HOUR" from dual;

Query to fetch minutes from date: select extract( minute from cast( to_date(' 17-
Nov-201415: 35: 26', 'DD-MON-YYYY HH24: MI:SS') as timestamp)) "MINUTES" from dual;

Query to fetch seconds from date: select extract( second from cast( to_date(' 17-
Nov-2014 15: 35: 26', 'DD-MON-YYYY HH24: MI:SS') as timestamp)) "SECONDS" from
dual;

select COL_DATE, to_Char( COL_DATE,' MON-YYYY') Month_Year, to_char( COL_DATE,' W')


Week_Number, case when to_char( COL_DATE,' W') = 1 then 'Week 1' when
to_char( COL_DATE,' W') = 2 then 'Week 2' when to_char( COL_DATE,' W') = 3 then
'Week 3' when to_char( COL_DATE,' W') = 4 then 'Week 4' when to_char( COL_DATE,'
W') = 5 then 'Week 5' else null end Week_of_Month
from test; (OR) select COL_DATE, to_Char( COL_DATE,' MON-YYYY') Month_Year,
to_char( COL_DATE,' W') Week_Number, 'Week' | | ' ' | | to_char( COL_DATE,' W')
Week_of_Month from test;

Week of a Year select COL_DATE, to_Char( COL_DATE,' MON-YYYY') Month_Year, to_char(


COL_DATE,' WW') Week_Number, 'Week' | | ' ' | | to_char( COL_DATE,' WW')
Week_of_Year from test;

In 12c Oracle has introduced UTL_CALL_STACK package to display the content of the
error stack in proper format. It has 3 API ERROR_DEPTH, ERROR_MSG, and
ERROR_NUMBER. The below API using utl_call_stack need to be created one time in
your database and can be called by any code in your oracle PL/SQL application:

PRAGMA INLINE

Вам также может понравиться