首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle错误: ORA-00900:无效SQL语句

Oracle错误: ORA-00900:无效SQL语句
EN

Stack Overflow用户
提问于 2016-03-11 17:43:11
回答 1查看 1.3K关注 0票数 1

我试图用两个函数创建以下数据类型:

代码语言:javascript
复制
-- Employee

CREATE OR REPLACE TYPE EmployeeType AS OBJECT (
    EmployeeNumber NUMBER,
    EmployeeName VARCHAR2(150),
    EmployeeAddress VARCHAR2(255),
    MAP MEMBER FUNCTION getEmployeeNumber RETURN NUMBER,
    MEMBER FUNCTION CalculateSalary RETURN FLOAT(2)
)
NOT FINAL;
CREATE OR REPLACE TYPE BODY EmployeeType AS

    MAP MEMBER FUNCTION getEmployeeNumber RETURN NUMBER IS
    BEGIN
        RETURN EmployeeNumber;
    END;
     -- function that can be overriden by subtypes, make abstract
    MEMBER FUNCTION CalculateSalary RETURN FLOAT(2) IS
    BEGIN
         -- function returns empty, has to be overwritten by fulltimeemployee
        RETURN 0.00;
    END;
END; 

然而,我总是收到一个错误声明

代码语言:javascript
复制
ERROR: ORA-00900: invalid SQL statement

Error Code: 900

Query = END

我使用RazorSQL执行我的查询,我似乎无法得到导致此错误的行号,但通过反复尝试,我发现它是我的TYPE BODY定义中的函数描述之一。

我尝试过在上一个/之后添加END;,但这无助于解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 18:46:08

FLOAT(2)替换为FLOAT

代码语言:javascript
复制
CREATE OR REPLACE TYPE EmployeeType AS OBJECT (
    EmployeeNumber NUMBER,
    EmployeeName VARCHAR2(150),
    EmployeeAddress VARCHAR2(255),
    MAP MEMBER FUNCTION getEmployeeNumber RETURN NUMBER,
    MEMBER FUNCTION CalculateSalary RETURN FLOAT
)
NOT FINAL;
/
CREATE OR REPLACE TYPE BODY EmployeeType AS

    MAP MEMBER FUNCTION getEmployeeNumber RETURN NUMBER IS
    BEGIN
        RETURN EmployeeNumber;
    END;
     -- function that can be overriden by subtypes, make abstract
    MEMBER FUNCTION CalculateSalary RETURN FLOAT IS
    BEGIN
         -- function returns empty, has to be overwritten by fulltimeemployee
        RETURN 0.00;
    END;
END; 
/

CREATE TYPE的文档没有提到这一点,但是您可以在与CREATE FUNCTIONfunction.htm返回数据类型相关的主题中找到解释

返回数据类型 对于数据类型,指定函数返回值的数据类型。返回值可以具有PL/SQL支持的任何数据类型。 . . 数据类型不能指定长度、精度或比例尺。数据库从调用函数的环境中派生返回值的长度、精度或比例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35946606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档