oracle使用笔记

来源:互联网 发布:淘宝轮播代码超简单 编辑:程序博客网 时间:2024/06/05 00:48

一、start with connect by prior

例子:SELECT * FROM table_name START WITH id= '参数值_入参' CONNECT BY PRIOR parent_id = id;

说明:查询一个树,从 '参数值_入参' 节点开始,一直往找,直到根节点,不会找 '参数值_入参' 的下级节点(子节点);

如果改为:SELECT * FROM table_name START WITH id= '参数值_入参' CONNECT BY PRIOR id = parent_id; '参数值_入参' 节点开始,一直往找,直到最底层的子节点,('参数值_入参'的所有子节点)。

二、判断一个字段的值是否重复HAVING COUNT (col_name) > 1

eg:SELECT col_name FROM table_name GROUP BY col_name HAVING COUNT (col_name) > 1。

三、创建一个自增id表

1、创建一张表

CREATE TABLE C_BASIC_TEST(
FLOW_ID  NUMBER(*,0), 
"GB_NAME" VARCHAR2(100), 
"GB_IDCARD" VARCHAR2(128),
 CONSTRAINT "PK_C_BASIC_TEST" PRIMARY KEY ("FLOW_ID")
);

2、自定义一个序列

CREATE SEQUENCE SEQ_C_BASIC_TEST
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
cache 100;  --缓存100
3、创建一个触发器

create trigger TG_C_BASIC_TEST before

insert on C_BASIC_TEST for each row when (new.FLOW_ID is null)--只有在id为空时,启动该触发器生成id号
begin
 select SEQ_C_BASIC_TEST.nextval into:new.FLOW_ID from dual; 
 end;

4、ora 00600 内部错误代码 参数(使用ROWNUM完美解决)(转载http://blog.csdn.net/mchdba/article/details/69938675)

在报错的sql的where后加and rownum>-1

原创粉丝点击