gpt4 book ai didi

oracle - 编译包时遇到符号 "/"

转载 作者:行者123 更新时间:2023-12-02 09:34:01 28 4
gpt4 key购买 nike

我在这里尝试一些非常简单的事情,只是创建一个包及其包体。这是我的代码(来自 oracle documentation ):

create or replace PACKAGE emp_bonus_2 AS
PROCEDURE calc_bonus (date_hired number);
END emp_bonus_2;
/
CREATE PACKAGE BODY emp_bonus_2 AS
PROCEDURE calc_bonus
(date_hired number) IS
BEGIN
DBMS_OUTPUT.PUT_LINE
('Employees hired on ' || date_hired || ' get bonus.');
END;
END emp_bonus_2 ;
/

编译时出现此错误:

Error(4,1): PLS-00103: Encountered the symbol "/"

我之前使用“/”创建触发器没有任何问题,所以我不知道问题出在哪里。我尝试删除“/”,这给了我一个“遇到 CREATE”错误。

我正在 Oracle 11g 数据库上使用 SQLDeveloper。

最佳答案

您的代码:

create or replace PACKAGE emp_bonus_2 AS
PROCEDURE calc_bonus (date_hired number);
END emp_bonus_2;
/
CREATE PACKAGE BODY emp_bonus_2 AS
PROCEDURE calc_bonus
(date_hired number) IS
BEGIN
DBMS_OUTPUT.PUT_LINE
('Employees hired on ' || date_hired || ' get bonus.');
END;
END emp_bonus_2 ;
/

此代码块是一个脚本,它创建两个对象:一个 PACKAGE 和一个 PACKAGE BODY。

SQL Developer 中的代码编辑器设计用于处理单个代码对象。您可以复制并粘贴第一个或第二个代码对象(不带“/”),就可以了。

如果要执行整个 block ,可以将其放入 SQL Worksheet 中,然后按 F5 运行。

“/”告诉 SQL Developer 您已完成 PL/SQL 代码。从数据库的角度来看,这没有任何意义,因此当您将其包含在代码编辑器中时会出现错误 - 它也会被发送到数据库。

当您在 SQL 工作表中执行该代码时,SQL Developer 会看到“/”,然后说,啊,这就是那段代码的结尾,执行它,然后重新开始。 “/”永远不会进入数据库本身。

请注意,在 SQL Plus 中,“/”也可以表示 -“再次运行那段代码。”在为 SQL Plus 构建部署脚本时,这可能会导致问题,您可以在其中多次执行事情,因为您添加了

Docs

The SQL Buffer The SQL buffer stores the most recently entered SQL command or PL/SQL block (but not SQL*Plus commands). The command or block remains in the buffer until replaced by the next SQL command or PL/SQL block. You can view the buffer contents with the LIST command.

You can execute the command or block in the SQL buffer using the RUN or /(slash) commands. RUN displays the command or block in the buffer before executing it. /(slash) executes the command or block in the buffer without displaying it first. For information about editing a command or block stored in the buffer see Editing Scripts in SQL*Plus Command-Line.

关于oracle - 编译包时遇到符号 "/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54171796/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com