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

使用Alter命令的Oracle存储过程

秦锐
2023-03-14
问题内容

我正在尝试构建一个将表名称作为参数的Oracle存储过程。然后,该过程将重建表上的所有索引。

我的问题是从存储过程中使用ALTER命令时出现错误,好像PLSQL不允许该命令一样。


问题答案:

这有两种可能。首先,您必须将SQL视为动态SQL。其次,Oracle
DDL语句不能在事务中运行(或者,它们终止当前事务并且本身不能回滚)。这可能会影响您是否可以在存储过程中使用它们,或者可以在何处使用包含它们的存储过程。

如果以上所有条件都不适用-可能容易误入歧途-我建议发布一些代码。



 类似资料:
  • 我写了一个存储过程: 但是我在编译过程中遇到以下错误,不知道为什么。 PLS-00103:在预期以下情况之一时遇到符号“ALTER TABLE”: (begin case:声明结束异常,退出goto,如果循环mod null pragma,提升返回,选择update with with 符号“(”替换为“ALTER TABLE”以继续。

  • 本文向大家介绍MySQL ALTER命令使用详解,包括了MySQL ALTER命令使用详解的使用技巧和注意事项,需要的朋友参考一下 ALTER TABLE允许你修改一个现有表的结构。例如,你可以增加或删除列、创造或消去索引、改变现有列的类型、或重新命名列或表本身。你也能改变表的注释和表的类型。 你可以使用CHANGE old_col_name create_definition子句重命名一个列。为

  • 主要内容:语法,实例SQLite 的 ALTER TABLE 命令不通过执行一个完整的转储和数据的重载来修改已有的表。您可以使用 ALTER TABLE 语句重命名表,使用 ALTER TABLE 语句还可以在已有的表中添加额外的列。 在 SQLite 中,除了重命名表和在已有的表中添加列,ALTER TABLE 命令不支持其他操作。 语法 用来重命名已有的表的 ALTER TABLE 的基本语法如下: 用来在已有的

  • 在 PostgreSQL 中,ALTER TABLE 命令用于添加,修改,删除一张已经存在表的列。 另外你也可以用 ALTER TABLE 命令添加和删除约束。 语法 用 ALTER TABLE 在一张已存在的表上添加列的语法如下: 在一张已存在的表上 DROP COLUMN(删除列),语法如下: 修改表中某列的 DATA TYPE(数据类型),语法如下: 给表中某列添加 NOT NULL 约束,

  • 我刚开始冬眠。我试图通过Hibernate调用oracle存储过程。我可以按照一些步骤通过Hibernate调用过程吗。 提前谢了。

  • 下面是我的Oracle存储过程, 我得到以下异常:hibernate:{CALL REPORT_HIBERNATE(?)}org.hibernate.exception.GenericJDBcException:无法执行查询...并且由:java.sql.sqlException:无效的列索引引起 Plz让我知道在Spring中我将如何使用Hibernate注释调用这个存储过程??