当前位置: 首页 > 面试题库 >

SQLPlus尝试两次删除软件包

越朗
2023-03-14
问题内容

在SQLPlus中执行脚本时,遇到了一个问题:

script.sql包含以下几行

@some_pkg.pks
@some_pkg.pkb

drop package some_pkg;
/

打电话后

> sqlplus用户/密码@dbname @ script.sql

控制台中显示以下消息:

Package created.
Package body created.
Package dropped.

drop package some_pkg;
*
ERROR at line 1:
ORA-04043: object SOME_PKG does not exist

请解释一下这里发生了什么。好像包裹被丢了两次。有可能避免该错误吗?


问题答案:

SQLplus命令执行的规则基本上是:

  • 遇到分号时,请执行当前文本。因此,如果一行不以分号结尾,则将继续收集当前文本。
  • 如果遇到DECLAREBEGIN,请收集所有文本,并且不要使用分号执行
  • 如果遇到斜线(/),请执行收集的文本。

因此,在您的情况下,分号和斜杠都执行了DROP语句。

要修复它,请删除斜杠。

仅当您有一个PL / SQL块(始终带有一条END语句)时,才需要斜杠。对其他所有内容使用分号。

注意:以上规则已简化。实际上更复杂。



 类似资料:
  • 软删除 在实际项目中,对数据频繁使用删除操作会导致性能问题,软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。 要使用软删除功能,需要引入SoftDelete trait,例如User模型按照下面的定义就可以使用软删除功能: <?php namespace app\index\model; use think\Model; use think\model\

  • ADDING AND REMOVING SOFTWARE Linux 或任何操作系统中最基本的任务之一便是添加和删除软件。您经常需要安装发行版中没有附带的软件,或者删除不需要的软件,这样就不会占用硬盘空间。 有些软件安装需要依赖其他软件才能运行,有时您会发现您可以在软件包安装过程中一次性下载所需的所有软件,软件包是一组文件(通常是库和其他依赖项),您需要这些文件才能使软件成功运行。当您安装一个包时

  • 问题内容: 在Python中,一个语句是否可以有多个语句?如 : 问题答案: 对的,这是可能的。 请参阅:http : //docs.python.org/tutorial/errors.html 关键字“ as”用于将错误分配给变量,以便稍后可以在代码中更彻底地调查错误。另请注意,在python 3中需要三重异常情况的括号。

  • 软删除Deleted Deleted可以让您不真正的删除数据,而是标记一个删除时间。使用此特性需要在xorm标记中使用deleted标记,如下所示进行标记,对应的字段必须为time.Time类型。 type User struct { Id int64 Name string DeletedAt time.Time `xorm:"deleted"` } 在Delete()

  • 问题内容: 如何从Pypi移除包裹? 几个月前,我将软件包上传到Pypi。该软件包现在已过时,我想正式将其删除。我找不到有关如何 删除 软件包的任何文档。 问题答案: 登录。 转到您的包裹。 选中特定软件包的“删除”复选框。 点击“删除”按钮。

  • 因为种种原因,现在大部分场景下,我们开发删除功能时,都不会将记录物理删除。 使用模型软删除功能非常简单,只需要在模型类中引入 trait Imi\Model\SoftDelete\Traits\TSoftDelete,并且在类上加上注解 @SoftDelete 示例 <?php namespace Imi\Test\Component\Model; use Imi\Bean\Annotatio