下一个查询没有看到以前的单个SQL文件 - PL / SQL

问题描述 投票:2回答:2

我有个问题。

我在一个SQL文件中有以下sql语句:

CREATE OR REPLACE TYPE Banda AS OBJECT (
    nr_bandy NUMBER(2)
    , nazwa VARCHAR2(20)
    , teren VARCHAR2(20)

    , MAP MEMBER FUNCTION MapBanda RETURN NUMBER
);

CREATE OR REPLACE TYPE BODY Banda IS
    MAP MEMBER FUNCTION MapBanda RETURN NUMBER IS
    BEGIN
        RETURN nr_bandy;
    END;
END;

当我逐个运行这些创建语句时(我的意思是选择第一个创建,ctrl + enter,然后第二个和ctrl + enter)我将创建这些结构没有任何问题。但是,如果我尝试创建它们(我的意思是Ctrl + A - > Ctrl + Enter),第二个查询似乎意识到知道类型'Banda'。

我越来越:

Type BANDA compiled

LINE/COL  ERROR
--------- -------------------------------------------------------------
8/1       PLS-00103: Encountered the symbol "CREATE" 
Errors: check compiler log

有没有可能“提交”每一个陈述?实际上我用这种方式创建了大约10-12种类型,所以它真的很烦人。我正在使用Oracle SQL Developer。

oracle plsql
2个回答
2
投票

尝试用/

CREATE OR REPLACE TYPE Banda AS OBJECT (
    nr_bandy NUMBER(2)
    , nazwa VARCHAR2(20)
    , teren VARCHAR2(20)

    , MAP MEMBER FUNCTION MapBanda RETURN NUMBER
);
/

CREATE OR REPLACE TYPE BODY Banda IS
    MAP MEMBER FUNCTION MapBanda RETURN NUMBER IS
    BEGIN
        RETURN nr_bandy;
    END;
END;
/

0
投票

@Simonare是100%正确的。

你的另一个选择是突出显示TYPE的文本并点击ctrl + enter然后选择类型体的文本并再次点击ctrl + enter。

如果您要将代码保存到文件中以存储在源控制系统中(请说你正在做这件事),那么你将要注意以后如何执行此代码。它会在SQL * Plus中使用吗? SQL Developer?别的什么?然后编写THAT的代码...这当然意味着你也想要测试它。

© www.soinside.com 2019 - 2024. All rights reserved.