Aqua Data Studio 中的 PL/SQL 错误

Posted

技术标签:

【中文标题】Aqua Data Studio 中的 PL/SQL 错误【英文标题】:PL/SQL error in Aqua Data Studio 【发布时间】:2012-05-30 10:03:54 【问题描述】:

我正在尝试在 Aqua Data Studio 8.0.22 中执行下一个代码:

--  Add a new role for cashier.
declare 
    roleEntityID "Entity"."EntityID"%type;
begin
    select "EntityID_SEQ".NEXTVAL into roleEntityID from dual;
    insert into "Entity" ("EntityID") values(roleEntityID);
    insert into "Role" ("RoleID", "Name", "DisplayName") values (roleEntityID, 'Cashier', 'Cashier');
end;

但不幸的是,我遇到了一些错误,首先是:

[错误] 脚本行:1-3 -------------------------- ORA-06550:第 3 行,第 41 列:PLS- 00103:遇到符号“文件结束”时 期待以下之一:

:= ( ; 非空范围默认字符 脚本第 3 行,语句 第 3 行,第 41 列

【问题讨论】:

【参考方案1】:

根据运行方式(作为脚本?),您可能需要使用正斜杠结束 PLSQL 块:

declare
--...
begin
--...
end;
/

并向您展示您的代码应该完全按原样工作(在 Oracle 11GR2 上;SQL Developer 的脚本输出显然不显示 createselect 语句后的分号或斜线在end; 之后,但都存在于原始缓冲区中):

> create sequence "EntityID_SEQ"
sequence "EntityID_SEQ" created.
> create table "Entity"("EntityID" number)
table "Entity" created.
> create table "Role"("RoleID" number, "Name" varchar2(30), "DisplayName" varchar2(30))
table "Role" created.
> declare 
    roleEntityID "Entity"."EntityID"%type;
begin
    select "EntityID_SEQ".NEXTVAL into roleEntityID from dual;
    insert into "Entity" ("EntityID") values(roleEntityID);
    insert into "Role" ("RoleID", "Name", "DisplayName") values (roleEntityID, 'Cashier', 'Cashier');
end;
anonymous block completed
> select * from "Entity"
EntityID               
---------------------- 
1                      

 1 rows selected 

> select * from "Role"
RoleID                 Name                           DisplayName                    
---------------------- ------------------------------ ------------------------------ 
1                      Cashier                        Cashier                        

 1 rows selected 

【讨论】:

【参考方案2】:

尝试删除引号。不知道你为什么把它们放在那里

【讨论】:

双引号强制所有对象名称(表、列、序列)区分大小写。如果它们是用引号创建的,他需要保留它们。如果他们是问题,他不会得到ORA-06550;应该是 ORA--00942: table or view does not existORA-02289: sequence does not exist

以上是关于Aqua Data Studio 中的 PL/SQL 错误的主要内容,如果未能解决你的问题,请参考以下文章

aqua data studio 连接db2

Aqua Data Studio 查询结果中文乱码

windows下安装DB2数据库以及使用Aqua Data Studio链接数据库

密码不能包含oracle数据库中的用户名或用户全名的一部分(pl/sq)

我可以为 Autolayout 中的默认 Aqua 空间使用啥常量?

如何在选择语句的“NOT IN”子句中使用逗号分隔的字符串列表作为 pl/sql 存储的函数参数