数据库字段含有level,在oracle中查询报ORA-01788: 此查询块中要求 CONNECT BY 子句1.原因:sql语句中使用了order by level语句处理办法: 不使用level 关键字
网上查了很多,都说不满足主键约束啥的等等都没解决,我的问题主要是删除记录的时候删不了,最后发现是
中
间表的外键默认删除时是RESTRICT,
当取值为No Action或者Restrict时,则当在父表(即外键的来源表)
中
删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。
当取值为
Ca
s
ca
de时,则当在父表(即外键的来源表)
中
删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)
中
的记录。
当取值为Set Null时,则当在父表(即外键的来源表)
中
删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表
中
该外键值为null(不
oracle
中
的select语句可以用START WITH...
CONNECT
BY PRIOR
子句
实现递归
查询
,
connect
by 是结构化
查询
中
用到的,其基本语法是:
select ... from
where
start with
connect
by
:过滤条件,用于对返回的
ORACLE
报错:
ORA
-
01788
:
CONNECT
BY cla
use
required in this query block
原因:
oracle
表
中
有字段level(关键字),直接
查询
该字段报错。
CREATE TABLE lcj_temp_level (ID VARCHAR2(20),"LEVEL" VARCHAR2(20));
SELECT id,level FROM lcj_temp_level ;
解决方案:
1,
查询
sql
中
level字段加双引号(要大些)
SELECT id,"LEV
数据库字段含有level,在
oracle
中
查询
报
ORA
-
01788
: 此
查询
块
中
要求
CONNECT
BY
子句
1.原因:
sql
语句
中
使用了order by level语句
2.办法:把字段改成level_(order by level_)
这几天看
sql
看到了有关
connect
by和level的关键字用法,以前都用my
sql
也没用过这个关键字,感觉挺有用的,就学了下,整理一下学习过程。
首先,
connect
by和level都是为了快速的
查询
层级关系的关键字,在代理关系
中
,或者权限关系
中
,经常会有层层嵌套的场景,比如,同行数据的第一个字段是ID,第二个字段是parentID,parentID表示他的上级ID是谁。
Error creating bean with name ‘indexController‘: Unsatisfied dependency expressed through field ‘dep