LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1680|回复: 2

oracle的过程中可否增加表的字段

[复制链接]
发表于 2006-8-30 21:13:41 | 显示全部楼层 |阅读模式
请问在oracle9.2中可否在存储过程中增加表的字段,字段名由参数给定。
  下面的命令可以执行,

  1. ALTER TABLE table_name ADD col_name col_type;
复制代码

      但相应的存储过程(DEPT、VARCHAR2(200)分别是我的表名和新字段的类型)

  1. create or replace procedure ADD_COLUMN(COL_NAME IN VARCHAR2) is
  2. begin
  3.   ALTER TABLE DEPT ADD COL_NAME VARCHAR2(100);
  4. end ADD_COLUMN;
复制代码

      在创建时报错:

  1. Compilation errors for PROCEDURE DEV.ADD_COLUMN
  2. Error: PLS-00103: 出现符号 "ALTER"在需要下列之一时:
  3.         begin case declare exit
  4.           for goto if loop mod null pragma raise return select update
  5.           while with <an identifier>
  6.           <a double-quoted delimited-identifier> <a bind variable> <<
  7.           close current delete fetch lock insert open rollback
  8.           savepoint set sql execute commit forall merge
  9.           <a single-quoted SQL string> pipe
  10. Line: 3
  11. Text: ALTER TABLE DEPT ADD COL_NAME VARCHAR2(100);
复制代码

  希望大家指点。
  谢谢!
发表于 2006-9-1 10:30:34 | 显示全部楼层
静态好象是不可以的,据说动态SQL可以
普通的pl/sql过程里,我试过create table是无法用的
回复 支持 反对

使用道具 举报

发表于 2006-9-3 23:00:17 | 显示全部楼层
至少你得用动态SQL
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表