oracle常用查询
获取表:
select table_name from user_tables; //当前用户的表
select table_name from all_tables; //所有用户的表
select table_name from dba_tables; //包括系统表
select table_name from dba_tables where owner=’用户名’
user_tables:
table_name,tablespace_name,last_analyzed等
dba_tables:
ower,table_name,tablespace_name,last_analyzed等
all_tables:
ower,table_name,tablespace_name,last_analyzed等
all_objects:
ower,object_name,subobject_name,object_id,created,last_ddl_time,timestamp,status等
获取表字段:
select * from user_tab_columns where Table_Name=’用户表’;
select * from all_tab_columns where Table_Name=’用户表’;
select * from dba_tab_columns where Table_Name=’用户表’;
user_tab_columns:
table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等
all_tab_columns :
ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等
dba_tab_columns:
ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等
获取表注释:
select * from user_tab_comments
user_tab_comments:table_name,table_type,comments
--相应的还有dba_tab_comments,all_tab_comments,这两个比user_tab_comments多了ower列。
获取字段注释:
select * from user_col_comments
user_col_comments:table_name,column_name,comments
日期范围查询:
- select * from tablename where time>=
- to_date(‘2011-06-02’,’yyyy-mm-dd’)
- and time<=to_date(‘2011-06-30’,’yyyy-mm-dd’)
运行的结果是:可以显示06-02的数据,但是不能显示06-30的数据。
所有可以得出结论:
①如果想显示05-30的数据可以<to_date(‘2011-05-31’,’yyyy-mm-dd’),这样就能显示30号的了。
②如果想要显示05-30的数据可以<=to_date(‘2011-05-30 23:59:59 999’,’yyyy-mm-dd hh24:mi:ss’)也是可以查出来的。
最终解决方案:
- select * from tablename where to_char(time,’yyyy-mm-dd’)>=’2011-05-02’
- and to_char(time,’yyyy-mm-dd’)<=’2011-05-30’
获取存储过程内容:
SELECT * FROM ALL_SOURCE@ecccsc where TYPE=’PROCEDURE’ and owner=’NEW_SUPPORT’ AND name LIKE ‘%INSERTNEWDOC%’ order by line
建一个job:
declare job_id number ;
begin
sys.dbms_job.submit(job_id,
what => 'ECC_CSC.SYN_SL_PRODUCT;',
next_date => to_date( '05-12-2014 12:00:00', 'dd-mm-yyyy hh24:mi:ss' ),
interval => 'sysdate+1' );end;
每天运行一次 ‘SYSDATE + 1’
每小时运行一次 ‘SYSDATE + 1/24’
每10分钟运行一次 ‘SYSDATE + 10/(60*24)’
每30秒运行一次 ‘SYSDATE + 30/(602460)’
每隔一星期运行一次 ‘SYSDATE + 7’
每个月最后一天运行一次 ‘TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE,1))) + 23/24’
每年1月1号零时 ‘TRUNC(LAST_DAY(TO_DATE(EXTRACT(YEAR FROM SYSDATE)||’12’||’01’,’YYYY-MM-DD’))+1)’
每天午夜12点 ‘TRUNC(SYSDATE + 1)’
每天早上8点30分 ‘TRUNC(SYSDATE + 1) + (860+30)/(2460)’
每星期二中午12点 ‘NEXT_DAY(TRUNC(SYSDATE ), ‘’TUESDAY’’ ) + 12/24’
每个月第一天的午夜12点 ‘TRUNC(LAST_DAY(SYSDATE ) + 1)’
每个月最后一天的23点 ‘TRUNC (LAST_DAY (SYSDATE)) + 23 / 24’
每个季度最后一天的晚上11点 ‘TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), ‘Q’ ) -1/24’
每星期六和日早上6点10分 ‘TRUNC(LEAST(NEXT_DAY(SYSDATE, ‘’SATURDAY”), NEXT_DAY(SYSDATE, “SUNDAY”))) + (660+10)/(2460)’