Oracle spool Ó÷¨Ð¡½á
ת×Ô£ºhttp://wallimn.javaeye.com/blog/472182
¶ÔÓÚSPOOL
Êý¾ÝµÄSQL£¬×îºÃÒª×Ô¼º¶¨Òå¸ñʽ£¬ÒÔ·½±ã³ÌÐòÖ±½Óµ¼Èë,SQLÓï¾ä
È磺
select
taskindex||'|'||commonindex||'|'||tasktype||'|'||to_number(to_char(sysdate,'YYYYMMDD'))
from ssrv_sendsms_task;
spool
³£ÓõÄÉèÖÃ
set colsep' ';¡¡¡¡¡¡ //ÓòÊä³ö·Ö¸ô·û
set echo off;¡¡¡¡¡¡¡¡//ÏÔʾstartÆô¶¯µÄ½Å±¾ÖеÄÿ¸ösqlÃüÁȱʡΪon
set feedback off;¡¡¡¡//»ØÏÔ±¾´ÎsqlÃüÁî´¦ÀíµÄ¼Ç¼ÌõÊý£¬È±Ê¡Îªon
set heading off;¡¡¡¡ //Êä³öÓò±êÌ⣬ȱʡΪon
set pagesize 0;¡¡¡¡¡¡//Êä³öÿҳÐÐÊý£¬È±Ê¡Îª24,ΪÁ˱ÜÃâ·ÖÒ³£¬¿ÉÉ趨Ϊ0¡£
set termout off;¡¡¡¡ //ÏÔʾ½Å±¾ÖеÄÃüÁîµÄÖ´Ðнá¹û£¬È±Ê¡Îªon
set trimout on;¡¡¡¡¡¡//È¥³ý±ê×¼Êä³öÿÐеÄÍÏβ¿Õ¸ñ£¬È±Ê¡Îªoff
set trimspool on;¡¡¡¡//È¥³ýÖØ¶¨Ïò£¨spool
£©Êä³öÿÐеÄÍÏ
β¿Õ¸ñ£¬È±Ê¡Îªoff
µ¼³öÎı¾Êý¾ÝµÄ½¨Òé¸ñʽ£º
SQL*PLUS»·¾³ÉèÖÃSET NEWPAGE NONE
SET HEADING OFF
SET SPACE 0
SET PAGESIZE 0
SET TRIMOUT ON
SET TRIMSPOOL ON
SET LINESIZE 2500
×¢£ºLINESIZEÒªÉÔ΢ÉèÖôóЩ£¬ÃâµÃÊý¾Ý±»½Ø¶Ï£¬ËüÓ¦ºÍÏàÓ¦µÄTRIMSPOOL½áºÏʹÓ÷ÀÖ¹µ¼³öµÄÎı¾ÓÐÌ«¶àµÄβ²¿¿Õ¸ñ¡£µ«ÊÇÈç¹û
LINESIZEÉèÖÃÌ«´ó£¬»á´ó´ó½µµÍµ¼³öµÄËÙ¶È£¬ÁíÍâÔÚWINDOWSϵ¼³ö×îºÃ²»ÒªÓÃPLSQLµ¼³ö£¬ËٶȱȽÏÂý£¬Ö±½ÓÓÃCOMMENDϵÄ
SQLPLUSÃüÁî×îС»¯´°¿ÚÖ´ÐС£
¶ÔÓÚ×Ö¶ÎÄÚ°üº¬ºÜ¶à»Ø³µ»»ÐзûµÄÓ¦¸Ã¸øÓë¹ýÂË£¬ÐÎ³É±È½Ï¹æ¾ØµÄÎı¾Îļþ¡£Í¨³£Çé¿öÏ£¬ÎÒÃÇʹÓÃSPOOL
·½
·¨£¬½«Êý¾Ý¿âÖÐµÄ±íµ¼³öΪÎı¾ÎļþµÄʱºò»á²ÉÓÃÁ½ÖÖ·½·¨£¬ÈçÏÂÊö£º
·½·¨Ò»£º²ÉÓÃÒÔϸñʽ½Å±¾¡¡
set colsep '|' &
Ïà¹ØÎĵµ£º
¶ÔÓÚinstrº¯Êý£¬ÎÒÃǾ³£ÕâÑùʹÓ㺴ÓÒ»¸ö×Ö·û´®ÖвéÕÒÖ¸¶¨×Ó´®µÄλÖá£Àý
È磺
SQL> select
instr('yuechaotianyuechao','ao') position from dual;
POSITION
----------
6
´Ó×Ö·û´®'yuechaotianyuechao'µÄµÚÒ»¸öλÖÿªÊ¼£¬Ïòºó² ......
connect by Êǽṹ»¯²éѯÖÐÓõ½µÄ£¬Æä»ù±¾Óï·¨ÊÇ£º
select ... from tablename start with Ìõ¼þ1
connect by Ìõ¼þ2
where Ìõ¼þ3;
Àý£º
select * from table
start with org_id = 'HBHqfWGWPy'
connect by prior org_id = parent_id;
¼òµ¥ËµÀ´Êǽ«Ò»¸öÊ÷×´½á¹¹´æ´¢ÔÚÒ»ÕűíÀ±ÈÈçÒ»¸ö±íÖдæÔÚÁ½¸ö×Ö¶ ......
OracleÈÕÆÚº¯Êýѧϰʱ£¬Ôڽ̳ÌÓм¸¸öʵÀýÈçÏ£º
Months_between(’01-sep-95’, ’11-jan-94’)
½á¹ûÊÇ£º19.6774194
Add_months ÔÚÖ¸¶¨µÄÔ·ÝÉÏÃæÔö¼ÓÏàÓ¦µÃÔ·Ý
ÀýÈ磺
Add_months(’11-jan-94’, 6)
½á¹ûÊÇ£º11-jul-94
Next_day ¼ÆËã¹æ¶¨Èͮ򵀼óÒ»¸öÌØ¶¨ÈÕÆÚ
ÀýÈ磺
Next_ ......
SQL> select to_char(sysdate,'yyyy')||'Äê'||to_char(sysdate,'mm')||'ÔÂ'||to_char(sysdate,'dd')||'ÈÕ' from dual;
TO_CHAR(SYSDATE,'YYYY')||'Äê'|
»òÕßʹÓÃË«ÒýºÅ
select to_char(add_months(trunc(sysdate),-1),'yyyy"Äê"mm"ÔÂ"') from dual È¡ÉϸöÔ·Ý
......
ÓÐÁ½ÖÖº¬ÒåµÄ±í´óС¡£Ò»ÖÖÊÇ·ÖÅä¸øÒ»¸ö±íµÄÎïÀí¿Õ¼äÊýÁ¿£¬¶ø²»¹Ü¿Õ¼äÊÇ·ñ±»Ê¹Ó᣿ÉÒÔÕâÑù²éѯ»ñµÃ×Ö½ÚÊý£º
select segment_name, bytes
from user_segments
where segment_type = 'TABLE';
»òÕß
Select Segment_Name,Sum(bytes)/1024/1024 from User_Extents Group By Segment_Name
ÁíÒ»ÖÖ±íʵ¼ÊÊ¹Ó ......