一、
ORA
-01436报错
开发遇到一个报错
ORA
-01436:
CONNECT
BY loop in user data (
ORA
-01436: 用户数据
中
的
CONNECT
BY 循环)。
1. 报错原因
根据网上的资料,产生这个错误的原因是数据形成了循环。例如下面这个语句:
SELECT r1.region_id,parent_id
FROM cnl_region r1
WHERE r1.region_id =1
START WITH r1.region_id = 1
CONNECT
BY PRIOR r1.region_id = r1.parent_id;
如果数据在region
Ora
cle
Connect
By Prior用法:
1、
connect
by
中
的条件就表示了父子之间的连接关系,比如
connect
by id=prior pid。
2、prior,表示在一表上,prior所在列pid的某一值A的记录行的父亲是列id上值等于列pid上值A的记录行。
3、LEVEL伪列表示树的深度(或叫高度)。
一、
ora
cle
中
的select语句可以用START WITH…...
今天给别人处理一个存储过程
中
遇到一个问题:
执行如下脚本语句
SQL_STMT:='SELECTCOUNT(*)FROM(SELECT'||COLREC.COLUMN_NAME||'AST_COLFROM'||COLREC.TABLE_NAME||')WHERE...
platform.
After upgrading to
Ora
cle 10g,
started getting an
ORA
-1788 error for a query that includes the
ora
cle
中
的select语句可以用START WITH...
CONNECT
BY PRIOR
子句
实现递归
查询
,
connect
by 是结构化
查询
中
用到的,其基本语法是:
select ... from
where
start with
connect
by
:过滤条件,用于对返回的
ORA
CLE报错:
ORA
-
01788
:
CONNECT
BY clause required in this query block
原因:
ora
cle表
中
有字段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
如下SQL,运行出现 无效数字的错误。
select sum(F_YE) as Res from TZWLFX TZWLFX where YDWBH like '100010004006%' and TZWLFX.F_KJQJ = '202012' and (F_KXLB='3' AND ( F_WLFL IN ('0101','0102','0103','0104','0106','0200','0201','0202','0204','0205','0299','0206','0210','0...
SELECT
(t1.DEPTCNAME||'-'||t1.MARK_TYPE||'-'||t2.CHECK_ITEM||'-'||t3.BY1||'-'||t3.content_standard) AS "textFile",<!--拼接考核/扣分依据下拉框-->
t3.IID AS "textId",<!--拼接考核/扣分依据下拉框iid-->
t3.SCORE AS "score",<!--加减分-->
t1.IID AS "markTypeId",<!--考
原因分析:
后面查资料才知道是sql_mode=“ONLY_FULL_GROUP_BY”,原来是我们mysql升级到5.7后才会遇到,mysql5.6没有这个问题 这个是因为mysql5.6
中
没有这个配置sql_mode="ONLY_FULL_GROUP_BY"而mysql5.7默认了这个配置,所以我们要在mysql5.7
中
取消这