表 T
create table T
(
ID NUMBER,
CID number,
primary key(ID)
);
表TC
create table TC
(
CID number,
CNAME VARCHAR2(10),
primary key(CID)
) 语句1
select
(select tc.cid
from tc where tc.cid=t.cid) AS C
from t 在任何版本下都能执行 但语句2
select
(select cid from (select tc.cid
from tc where tc.cid=t.cid)) AS C
from t 在oracle9i下不能执行 提示t.cid不识别
ORacle 10.2.0版本下能执行
更奇怪的是 在oracle10.3.0下也不能执行 相同的提示 大家不要考虑这句话的实际意义,因为我是从一个复杂的数据逻辑中抽取出来的简单逻辑
谁能解释一下
我怀疑可能跟数据库服务器的设置有关
http://topic.csdn.net/u/20080326/17/ba329752-7be2-44db-9b79-b79f023924a4.html
此处也是我发的帖子 一共200分
另外 此语句我在sql server2005下也测试过,也能执行过去
create table T
(
ID NUMBER,
CID number,
primary key(ID)
);
表TC
create table TC
(
CID number,
CNAME VARCHAR2(10),
primary key(CID)
) 语句1
select
(select tc.cid
from tc where tc.cid=t.cid) AS C
from t 在任何版本下都能执行 但语句2
select
(select cid from (select tc.cid
from tc where tc.cid=t.cid)) AS C
from t 在oracle9i下不能执行 提示t.cid不识别
ORacle 10.2.0版本下能执行
更奇怪的是 在oracle10.3.0下也不能执行 相同的提示 大家不要考虑这句话的实际意义,因为我是从一个复杂的数据逻辑中抽取出来的简单逻辑
谁能解释一下
我怀疑可能跟数据库服务器的设置有关
http://topic.csdn.net/u/20080326/17/ba329752-7be2-44db-9b79-b79f023924a4.html
此处也是我发的帖子 一共200分
另外 此语句我在sql server2005下也测试过,也能执行过去
解决方案 »
- ORACLE 链接SQLSERVER
- oracle数据库触发器可否调用远程JAVA程序
- 如何在oracle 客户端的command窗口运行SQL语句
- 问个菜鸟问题,在两张表中SELECT的问题
- oracle错误,求大神
- 我们通常都配置oracle client目录里面的tnsnames.ora,但是在oracle的network\admin里面也有同名文件,这是做什么用呢?
- 如何把一个表的数据完全导出到另外一个表中(最好能包括表结构)——求教
- SQL 中的 continue,Break Oracle 是用什么替代的??
- 用什么函数能得到date类型子段中具体的month,year和day
- SELECT SYSDATE FROM DUAL,返回的是一个只有日期,没有时间的值????
- 各位高人请指点,哪有oracle的视频?谁的比较好?能不能告诉一下网址?
- 为什么我的这条sql语句执行这么慢,要40多秒
在里面找不到最外层的表了
我写sql不会这样写的
(select tc.cid
from tc where tc.cid=t.cid) AS C
from t
寫成這樣的話就在什么環境下就可以了啊!
select t.cid from t,tc where t.cid=tc.cid
我这个简单的sql在他不同版本下执行 和他那个复杂的sql结果是一样的提示。现在我不是想问这句话怎么改,我是想知道就是这么一句话,在oracle下到底是怎么被解析 怎么被执行的。为什么会出现不同版本 有的能执行 有的不能执行。如果说改掉这个写法,我觉得 我也不会费这么大力到这来请教高人了。赫赫
请大家不要在关注这个写法优美不优美。多多关注一下oracle的编译原理,我觉得问我这个问题的人就很有求知欲。
谢谢大家
很久以前就遇到过,没有什么可以解释的。
在 from 前面的查询中是能识别的!
如果是在from 前面中查询的子查询中就不能识别了!
能否找到oracle10.2.0和oracle10.3.0之间更新的内容,看一下有没有思路
(select cid from (select tc.cid
from tc where tc.cid=t.cid)) AS C
from t 非要写那么复杂吗?SELECT TC.CID FROM T,TC WHERE TC.CID=T.CID