select (select b.字段 from
(select 字段 from 表1 where 表1.列 = 表2.列) b
) c
from 表2 ;这种sql在32位的oracle里面执行没有问题,在64位就报 表2.列 不存在,这玩意咋解决啊...不能执行的环境:
windowsserver2008
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
可以执行的环境:
windowsserver2003
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
(select 字段 from 表1 where 表1.列 = 表2.列) b
) c
from 表2 ;这种sql在32位的oracle里面执行没有问题,在64位就报 表2.列 不存在,这玩意咋解决啊...不能执行的环境:
windowsserver2008
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
可以执行的环境:
windowsserver2003
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
这个问题真是存在,一层嵌套
select (select 字段 from 表1 where 表1.列 = 表2.列) b from 表2 ;
没有问题,两层就不行了.真是很痛苦.
http://www.oracle.com.cn/archiver/?tid-128450.html 这里有位同行也是遇到了这个问题,可惜没人回答
我不是说和位数相关,我的意思是这个64位的oracle是不是有这个bug。我也下了个11g,准备装个11g测一测。
楼上的兄弟,做过10迁移到11没?我昨天试用32位oracle10g的exp导出,在64位机器上导入这个dmp文件,有几个表结构死活导不进去,搞不懂为什么,都是很简单的表,而且都是空表只有结构,也没用到自定义对象,字段类型都是普通类型。后来只有手工利用plsqldev来做,有点郁闷。
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1853075500346799932#1859169400346361423
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select (select (select ID from city_code a where a.id=b.city_id ) from rep_
statusmsg b where b.city_id=c.id)
2 from city_code c ;(SELECT(SELECTIDFROMCITY_CODEAWHEREA.ID=B.CITY_ID)FROMREP_STATUSMSGBWHEREB.CITY_-------------------------------------------------------------------------------- 1 2 3
SQL>
xman_78tom:ANSI SQL 标准不管是哪个版本都不支持 sql 语句中子查询引用表名进行多层嵌套吗?那我个人认为这个标准不够好,sqlserver改得好!谢谢,这个贴再挂两天,供大家讨论一下,周六结贴。谢谢各位!
正在检查操作系统要求...
要求的结果: 5.0,5.1,5.2,6.0 之一
实际结果: 6.1
检查完成。此次检查的总体结果为: 失败 <<<<
问题: Oracle Database 11g 未在当前操作系统中经过认证。
建议案: 确保在正确的平台上安装软件。原来服务器是6.1版本7200. 我晕死啊,10g10.2.0.1.0也只支持6.0以下,oracle11.1.0.7.0也一样.我咋样才能使用这个oracle所谓的bug呢?
10203_vista_w2k8_x86_production_db;
102010_win64_x64_database;
oracle10.2.0.1.0_x32;
win64_11gR1_database_111070;两个32位的纯属测测,别拍砖.
SELECT *
FROM (
SELECT B.VALUE
FROM (
SELECT *
FROM (
WITH
TAB1 AS
(SELECT 'A' ID,'DKJSALK' NAME FROM DUAL UNION ALL
SELECT 'B' ID,'TERSDSK' NAME FROM DUAL UNION ALL
SELECT 'C' ID,'ERSDSDS' NAME FROM DUAL),
TAB2 AS
(SELECT 'A' ID,2322 VALUE FROM DUAL UNION ALL
SELECT 'A' ID,8980 VALUE FROM DUAL)
SELECT TAB2.*,
TAB1.NAME
FROM TAB1,TAB2
WHERE TAB1.ID = TAB2.ID)
) B
) C
给大伙一个测试语句:
select (select * from (select a.dummy from dual a where a.dummy = dual.dummy)) from dual;
有环境的麻烦帮忙测试下哪些个64位的版本能支持,麻烦将操作系统版本和oracle版本报上来,报小版本号.目前只发现32位下oracle10.2.0.1.0_x32可以;还有一位仁兄说
windows 2008 server(64) R2+ oracle11.1.0.7.0 也可以,但估计其操作系统版本肯定在6.1以下.
select (select * from (select a.dummy from dual a where a.dummy = dual.dummy)) from dual;且windows 2008 server(64) R2(6.0,6.1) 无论装哪个10g以上版本,都无法成功安装EM,提示EM配置失败,需手工配置,服务里面也没这个服务,很是崩溃.
书到用时方恨少啊...
oracle用起来确实没有sqlserver方便。
顺带发现一个问题:从9i开始就号称面向对象,那么如何定义表类型?sqlserver有表值函数,在oracle实现时就只能拐个弯,用类型数组的方式来实现(虽然定类的时候关键字还是table,但其实只能按数组的语法去编辑数据),这点看来实在是有点伪面向对象了。
还有一点就是oracle的临时表实在是没有sqlserver的临时表用起来方便,临时表不能直接在代码中进行定义结构(动态创建是可以,可惜返回的时候如果是基于事务的,代码一结束就销毁了,客户端无法接收;基于连接的就实在是无法控制在多个不同对象中的临时表名称),必须先行定义。转到不同DB的时候工作量实在是太大,真不知道那些支持多DB的软件是怎么弄的,可能是人多力量大吧。
一点小看法,拍砖的尽管拍,不怕人批评,就怕高手们不出声。
谢谢楼上的诸位了,之前说好的,下午结贴。