新手必读:Oracle入门教程
14.在Oracle中建一个编号会自动增加的字段,以利于查询
1、建立序列:
CREATE SEQUENCE checkup_no_seq
NOCYCLE
MAXVALUE 9999999999
START WITH 2;
2、建立触发器:
CREATE OR REPLACE TRIGGER set_checkup_no
BEFORE INSERT ON checkup_history
FOR EACH ROW
DECLARE
next_checkup_no NUMBER;
BEGIN
--Get the next checkup number from the sequence
SELECT checkup_no_seq.NEXTVAL
INTO next_checkup_no
FROM dual;
--use the sequence number as the primary key
--for the record being inserted
:new.checkup_no := next_checkup_no;
END;
15.查看对象的依赖关系(比如视图与表的引用)
查看视图:dba_dependencies 记录了相关的依赖关系
查东西不知道要查看哪个视图时,可以在DBA_Objects里看,
select object_name from dba_objects where object_name like ''%ROLE%''(假如查看ROLE相关)
然后DESC一下就大体上知道了。
16.要找到某月中所有周五的具体日期
select to_char(t.d,''YY-MM-DD'') from (
select trunc(sysdate, ''MM'')+rownum-1 as d
from dba_objects
where rownum < 32) t
where to_char(t.d, ''MM'') = to_char(sysdate, ''MM'') --找出当前月份的周五的日期
and trim(to_char(t.d, ''Day'')) = ''星期五''
--------
03-05-02
03-05-09
03-05-16
03-05-23
03-05-30
如果把where to_char(t.d, ''MM'') = to_char(sysdate, ''MM'')改成sysdate-90,即为查找当前
月份的前三个月中的每周五的日期。
1、建立序列:
CREATE SEQUENCE checkup_no_seq
NOCYCLE
MAXVALUE 9999999999
START WITH 2;
2、建立触发器:
CREATE OR REPLACE TRIGGER set_checkup_no
BEFORE INSERT ON checkup_history
FOR EACH ROW
DECLARE
next_checkup_no NUMBER;
BEGIN
--Get the next checkup number from the sequence
SELECT checkup_no_seq.NEXTVAL
INTO next_checkup_no
FROM dual;
--use the sequence number as the primary key
--for the record being inserted
:new.checkup_no := next_checkup_no;
END;
15.查看对象的依赖关系(比如视图与表的引用)
查看视图:dba_dependencies 记录了相关的依赖关系
查东西不知道要查看哪个视图时,可以在DBA_Objects里看,
select object_name from dba_objects where object_name like ''%ROLE%''(假如查看ROLE相关)
然后DESC一下就大体上知道了。
16.要找到某月中所有周五的具体日期
select to_char(t.d,''YY-MM-DD'') from (
select trunc(sysdate, ''MM'')+rownum-1 as d
from dba_objects
where rownum < 32) t
where to_char(t.d, ''MM'') = to_char(sysdate, ''MM'') --找出当前月份的周五的日期
and trim(to_char(t.d, ''Day'')) = ''星期五''
--------
03-05-02
03-05-09
03-05-16
03-05-23
03-05-30
如果把where to_char(t.d, ''MM'') = to_char(sysdate, ''MM'')改成sysdate-90,即为查找当前
月份的前三个月中的每周五的日期。
0
相关文章