sql >> Databáze >  >> RDS >> Oracle

CHYBA Oracle:ORA-00900:neplatný příkaz SQL

Nahraďte FLOAT(2) pouze pomocí FLOAT :

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; 
/

Dokumentace pro CREATE TYPE to nezmiňuje, ale vysvětlení můžete najít v tématu souvisejícím s CREATE FUNCTION :http://docs.oracle.com/cd/ B28359_01/appdev.111/b28370/create_function.htm datový typ RETURN




  1. PDO odešle nezpracovaný dotaz do MySQL, zatímco Mysqli odešle připravený dotaz, oba produkují stejný výsledek

  2. Přehled typů SQL Join s příklady

  3. Vytvořte uživatelsky definovaný operátor s levou/pravou stranou

  4. Problémy s obtékáním složitých SQL dotazů na odstranění