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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog