加入讨论:用 CREATE GLOBAL TEMPORARY TABLE 语句建立的表是'临时表' ,尽管他也是‘永久的’
用 create table 建立的是'永久表’,即使是应用的需要,用来周转数据的。在你的例子中,没有使用如上概念的临时表。

解决方案 »

  1.   

    写完代码没检查就发上来,抱欠!谢谢楼上的指正!
    怎么才能把顶贴改过来?*******************************************************
    *******************************************************
    【【【【顶贴有误,修改如下】】】】】
    【【【【顶贴有误,修改如下】】】】】
    【【【【顶贴有误,修改如下】】】】】
    *******************************************************
    *******************************************************【错误地方】
    二.中创建临时表的语句,
    """"""
    方法如下:
    1.根据报表 的结构 创建一个 相应结构的preserve临时表
    create table jcctemptbl (电压等级 varchar2(50),
    级别 varchar2(50),
    缺陷个数 number(10,0) ) 
    """""
    我用的创建永久表,应改为创建preserve型临时表
    将创建语句改为:
    【修改内容】
    create global temporary table jcctemptbl (电压等级 varchar2(50),
    级别 varchar2(50),
    缺陷个数 number(10,0) ) 
                            on commit preserve rows ;
      

  2.   

    那就不要用 delete from jcctemptbl 了;
      

  3.   

    我用的preserve型的 临时表, 好象是会话级的,当应用程序退出时 才清空表中的数据,
    如果用户在一个应用程序内 要多次执行次存储过程时,每一次 我觉得要 先清空临时表,不然上一次执行存储过程时 的数据还在里面
    不知道理解对不对
      

  4.   

    在存储过程中并没有执行commit语句,
    那么
    delete from jcctemptbl ;语句是否有意义呢?