在11g到19c的迁移过程中发现一个sql语法方面的问题: 11.2.0.2 和19c分别创建测试表: create table tt as select * from dba_objects; create table t1 as select * from dba_objects; 分别执行下面的sql: select A.B.object_name FROM TT A LEFT JOIN T1 B ON B.object_id=A.object_id; select Z.B.object_name FROM TT A LEFT JOIN T1 B ON B.object_id=A.object_id; 11g下(11.2.0.2和11.2.0.4效果一样): SQL> set autotrace trace SQL> SQL> select A.B.object_name FROM TT A LEFT JOIN T1 B ON B.object_id=A.object_id; 71895 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 3382560155 -------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time -------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 62167 | 5585K| | 941 (1)| 00:00:12 | |* 1 | HASH JOIN OUTER | | 62167 | 5585K| 1520K| 941 (1)| 00:00:12 | | 2 | TABLE ACCESS FULL| TT | 62167 | 789K| | 287 (1)| 00:00:04 | | 3 | TABLE ACCESS FULL| T1 | 67933 | 5240K| | 287 (1)| 00:00:04 | SQL> select Z.B.object_name FROM TT A LEFT JOIN T1 B ON B.object_id=A.object_id; 71895 rows selected. Execution Plan ---------------------------------------------------------- Plan hash value: 3382560155 -------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time -------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 62167 | 5585K| | 941 (1)| 00:00:12 | |* 1 | HASH JOIN OUTER | | 62167 | 5585K| 1520K| 941 (1)| 00:00:12 | | 2 | TABLE ACCESS FULL| TT | 62167 | 789K| | 287 (1)| 00:00:04 | | 3 | TABLE ACCESS FULL| T1 | 67933 | 5240K| | 287 (1)| 00:00:04 | 19c下执行: SQL> set autotrace trace SQL> select Z.B.object_name FROM TT A LEFT JOIN T1 B ON B.object_id=A.object_id; select Z.B.object_name FROM TT A LEFT JOIN T1 B ON B.object_id=A.object_id * ERROR at line 1: ORA-00904: "Z"."B"."OBJECT_NAME": invalid identifier SQL> select A.B.object_name FROM TT A LEFT JOIN T1 B ON B.object_id=A.object_id; select A.B.object_name FROM TT A LEFT JOIN T1 B ON B.object_id=A.object_id * ERROR at line 1: ORA-00904: "A"."B"."OBJECT_NAME": invalid identifier 很明显,19c的语法检查比11g要严格了多,重点还是写sql的时候要严谨,不然还会遇到很多奇奇怪怪的问题。 目前暂时没有想到什么办法解决: 测试将compatible 改为11.2.0.4 (compatible不能降级,11g的库升级为19c)然后再执行sql SQL> show parameter com NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cell_offload_compaction string ADAPTIVE commit_logging string commit_point_strength integer 1 commit_wait string commit_write string common_user_prefix string C## compatible string 11.2.0.4.0 db_index_compression_inheritance string NONE inmemory_prefer_xmem_memcompress string nls_comp string BINARY noncdb_compatible boolean FALSE 测试发现 也不行。
在11g到19c的迁移过程中发现一个sql语法方面的问题
来源:这里教程网
时间:2026-03-03 20:03:32
作者:
编辑推荐:
- 在11g到19c的迁移过程中发现一个sql语法方面的问题03-03
- oracle主机虚拟内存不足导致实例宕机03-03
- Oracle 23ai FREE安装初体验03-03
- REHL7.6静默安装Oracle19C,泰裤了!03-03
- 数据库管理-第195期 Oracle & RDMA(20240527)03-03
- oracle 区分32位还是64位03-03
- 限制RMAN备份速度03-03
- linux网络限速(可以限制使用nfs的oracle)03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle主机虚拟内存不足导致实例宕机
oracle主机虚拟内存不足导致实例宕机
26-03-03 - Oracle 23ai FREE安装初体验
Oracle 23ai FREE安装初体验
26-03-03 - REHL7.6静默安装Oracle19C,泰裤了!
REHL7.6静默安装Oracle19C,泰裤了!
26-03-03 - 数据库管理-第195期 Oracle & RDMA(20240527)
数据库管理-第195期 Oracle & RDMA(20240527)
26-03-03 - 数据库管理-第187期 23ai:怎么用SQL创建图(20240510)
数据库管理-第187期 23ai:怎么用SQL创建图(20240510)
26-03-03 - 数据库管理-第186期 23ai:啥?我还能干掉Neo4j?(20240509)
- rac asm新增磁盘报0RA-15333或ORA-15075
rac asm新增磁盘报0RA-15333或ORA-15075
26-03-03 - Oracle RAC的排障案例一则
Oracle RAC的排障案例一则
26-03-03 - 测试开发新技能:Oracle到高斯数据库的无缝迁移
测试开发新技能:Oracle到高斯数据库的无缝迁移
26-03-03 - 因Oracle 23ai,甲骨文中国罕见的开了个会
因Oracle 23ai,甲骨文中国罕见的开了个会
26-03-03
