alter package/procedure

今天状态非常不好,头晕的要命。简单记录一下。

今天pl/sql challenge出的题目是关于package中删除一个存储过程的,打完看了一下oracle文档,完全错了。

首先,package中并不需要有执行部分,也就是说不用

“begin

……”

只包含存储过程就行了,把调用放到其他过程或匿名块中就ok。

其次,alter package没有删除procedure的语法,以下是文档截图:

 

 

 

不指定schema时默认是当前schema

 

debug与在compiler_parameters_clause中指定PLSQL_DEBUG = TRUE效果相同,保留信息用于pl/sql debugger

 

packagespecificationbody分别指定了对整个包、包声明、包体进行重编译。

 

compiler_parameters_clause:可以指定PLSQL_OPTIMIZE_LEVEL, PLSQL_

CODE_TYPE, PLSQL_DEBUG, PLSQL_WARNINGS, and NLS_LENGTH_SEMANTICS.,每个参数在语句中只能指定一次,对指定的包生效,如果要指定所有包,需要使用alter sessionalter system命令

 

reuse settings:保留当前的编译选项设置

 

看来不能用alter语句进行存储过程删除等操作。

 

实验:

SQL> alter package pck_ref compile;

 

Package altered

 

During recompilation, Oracle Database drops all persistent compiler switch

settings, retrieves them again from the session, and stores them at the end of

compilation. To avoid this process, specify the REUSE SETTINGS clause.

 

SQL> alter package pck_ ref compile reuse settings;

 

Package altered

 

当发生编译错误时,可以用show error查看

 

SQL> alter package pck _ref compile reuse settings;

 

Warning: Package altered with compilation errors

 

SQL> show error;

No errors for PACKAGE NBSCMP.PCK_ REF

 

 

与包的修改选项类似,可以使用alter procedure命令:

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26451536/viewspace-751755/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26451536/viewspace-751755/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`ALTER` 语句可以用于修改已有表的结构,包括添加、修改、删除列,修改表名、添加、删除约束等。 以下是一些常见的 `ALTER` 语句用法: 1. 添加新列: ```sql ALTER TABLE table_name ADD column_name datatype; ``` 其中 `table_name` 是要修改的表名,`column_name` 是要添加的新列名,`datatype` 是新列的数据类型。 2. 修改列: ```sql ALTER TABLE table_name ALTER COLUMN column_name datatype; ``` 其中 `table_name` 是要修改的表名,`column_name` 是要修改的列名,`datatype` 是要修改的数据类型。 3. 删除列: ```sql ALTER TABLE table_name DROP COLUMN column_name; ``` 其中 `table_name` 是要修改的表名,`column_name` 是要删除的列名。 4. 修改表名: ```sql ALTER TABLE table_name RENAME TO new_table_name; ``` 其中 `table_name` 是要修改的表名,`new_table_name` 是新的表名。 5. 添加约束: ```sql ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_type (column_name); ``` 其中 `table_name` 是要添加约束的表名,`constraint_name` 是约束的名称,`constraint_type` 是约束的类型,可以是 `PRIMARY KEY`、`UNIQUE`、`FOREIGN KEY` 等,`column_name` 是要添加约束的列名。 6. 删除约束: ```sql ALTER TABLE table_name DROP CONSTRAINT constraint_name; ``` 其中 `table_name` 是要删除约束的表名,`constraint_name` 是要删除的约束名称。 注意,不同的数据库管理系统可能会有稍微不同的语法和用法,以上示例仅供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值