【问题标题】:SQL : select from nested table oidSQL:从嵌套表 oid 中选择
【发布时间】:2016-03-29 17:15:19
【问题描述】:

我尝试从嵌套表中进行选择,但显示错误消息“ORA-00933:SQL 命令未正确结束” 这是选择的要求

select b.NomPlayer from  table (select t.players from Team t where t.IdTeam=1) as p;

这是我创建player_typeteam_type的代码

CREATE OR REPLACE TYPE Player_Type AS OBJECT ( Num_Licence NUMBER, NomPlayer VARCHAR2(30)) ;
CREATE TYPE PlayersNT AS TABLE OF ref Player_Type ;
CREATE TYPE Team_Type AS OBJECT ( IdTeam NUMBER, TeamName VARCHAR2(30), Players PlayersNT ) ;
CREATE TABLE Player OF Player_Type ;
CREATE TABLE Team OF Team_Type
NESTED TABLE Players STORE AS PlayersTab ;

【问题讨论】:

    标签: sql database oracle object-relational-model


    【解决方案1】:

    删除FROM 子句中的AS。与其他数据库不同,Oracle 只允许在SELECT 子句中使用AS

    select * from table(select t.players from Team t where t.IdTeam=1) p;
    

    【讨论】:

    • 我试过了,但出现了错误消息 ORA-00932:不一致的数据类型:预期的 NUMBER 得到了 REF SYSTEM.TEAM_TYPE
    • 您能否添加一些示例数据来重现新错误?当我运行 DDL 并查询空表时,它对我有用。
    • 我在嵌套表中添加了玩家的oid
    猜你喜欢
    • 2012-12-07
    • 2016-06-07
    • 2020-12-07
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    相关资源
    最近更新 更多