5月29日oracle

1.having是对谁的筛选?
答:是对分组之后产生的聚合字段进行筛选;

2.复杂视图,更改字段,在键保留表里进行更改,会在基表里边得到体现,
在复杂视图里边不允许更改 非键保留表里边的字段, (因为无法对应,或者说非键保留表没法
根据在视图中的更改,在基表中做出唯一对应更改,就是说有很多种情况,它不能确定是哪一种?)
ps:非物化视图的数据都是存储在基表中,所以它的所有改变都应该在基表中体现;


3.物化视图:
既然只有键保留表的字段,为啥增量刷新时,还要给非键保留表增加更改日志,还要给她显示rowid;

4.创建序列时会创建一个对象,保存方式是持久化到磁盘上,当序列的长度和起始值被设定以后,就在磁盘
上边生成了一段固定的序列;
ps:缓存值和序列本身是分离的,缓存最大值=增量*缓存的个数;
缓存最大值要小于序列最大值;


微观尽头 16:31:53
CREATE SEQUENCE SEQ_TEST5
INCREMENT BY 10
START WITH 10
MAXVALUE 200
CYCLE;
微观尽头 16:32:00
SELECT SEQ_TEST5.NEXTVAL FROM DUAL


-- 有条件循环
declare
v_num number;
begin
v_num:=1;
while v_num<=100
loop
dbms_output.put_line(v_num);
v_num:=v_num+1;
end loop;


end;


--for循环


declare
begin
for v_num in 1..100
loop
dbms_output.put_line(v_num);

end loop;
end;


--游标 输出结果集
declare 
cursor cur_pricetable is select * from t_pricetable where ownertypeid=1; -- 声明游标
v_pricetable t_pricetable%rowtype; -- t_pricetable%rowtype : 取出行的类型,类似于java中的bean;
begin
open cur_pricetable -- 打开游标
loop
fetch cur_pricetable into v_pricetable;
exit when cur_pricetable%notfound;  --游标结束,退出循环
dbms_output.put_line('价格:'||v_pricetable.price||' 吨位:'||v_pricetable.minnum);

end loop;
end;




-- 用for循环使用游标
declare
cursor cur_pricetable(v_type number) is select * 
from t_pricetable where ownertypeid=v_type;  -- 声明游标
begin
for v_pricetable in cur_pricetable(1)
loop
dbms_output.put_line(此处输出内容...);
end loop;
end;


-- 存储函数定义
create [or replace] function 函数名称(参数名称 参数类型,参数名称,参数类型)
return 结果变量数据类型
is
变量声明部分;
begin
逻辑部分;
retrun 结果变量;
[exception 异常处理部分]
end;



























猜你喜欢

转载自blog.csdn.net/weixin_36898943/article/details/80754555
今日推荐