qiongshizu 2015-03-26 09:12 采纳率: 33.3%
浏览 1643
已采纳

oracle 存储过程 求教

根据现有表自动生成新表 并加入两个新列,我写了代码,但执行的时候报错:
ORA-01735: invalid ALTER TABLE option
ORA-06512: at "GX.CREATETAB_GX_ASSIGNMENT_PRO", line 13
ORA-06512: at line 2
忽略之后生成了跟原表结构相同的表 并没有增加新列,代码如下(前面的数字代表行数是我加的):
1 CREATE OR REPLACE procedure GX.createtab_gx_assignment_pro
2 Authid Current_User
3 as
4 tabname Varchar(200);
5 asql Varchar(200);
6 bsql Varchar(200);
7
8 begin
9 select 'GX_ASSIGNMENT_'||to_char(sysdate,'yyyymmdd') into tabname from dual;
10 asql:='create table '||tabname||' as select * from gx.GX_ASSIGNMENT where rownum=0';
11 execute immediate asql ;
12 bsql:='alter table gx.'||tabname||'add(ScnNum Number,Operate Varchar(35))';
13 execute immediate bsql;
14
15 commit;
16 end;

  • 写回答

1条回答 默认 最新

  • danielinbiti 2015-03-26 10:02
    关注

    两个

     create or replace procedure createtab_gx_assignment_pro
    Authid Current_User
    as
    tabname Varchar(200);
    

    去掉一个后执行没问题。

    
    create or replace procedure createtab_gx_assignment_pro
    Authid Current_User
    as
    tabname Varchar(200);
    asql Varchar(200);
    bsql Varchar(200);
    begin
    select 'GX_ASSIGNMENT_'||to_char(sysdate,'yyyymmdd') into tabname from dual;
    asql:='create table tabname as select * from gx.GX_ASSIGNMENT where rownum=0';
    execute immediate asql using tabname;
    commit;
    end;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试