存储过程里怎么建临时表 如:create table Department (Dep_ID varchar2(20) not null,Dep_name varchar2(30)); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我刚才搜索一些帖子:CREATE GLOBAL TEMPORARY TABLE TABLENAME ( COL1 VARCHAR2(10), COL2 NUMBER) ON COMMIT PRESERVE(DELETE) ROWS ;这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESERVE则一直到会话结束会话指的是什么,是指存储过程本身,就是存储过程执行完毕后,数据自动清空?????? 大哥,在我的印象中oracle(最少8i)没有临时表,临时表是出现在sql server中,临时表是带#的,存储过程一完就自动消失,在oracle中不记得有临时表。sysbase中好像也有。好久没搞了,说错我就认扁。其实像在存储过程中有人这么做,开始建立一张表,用完了删除,或是就让一张表存在库中做临时表用。 叫我大哥我听着一点也不舒服!大哥有两层含义,1,真正的老大,大腕级的,2,菜鸟,轻量级的,有点扁你的意思,不知道我是属于哪个。言归正传,CREATE GLOBAL TEMPORARY TABLE TABLENAME ( COL1 VARCHAR2(10), COL2 NUMBER) ON COMMIT PRESERVE(DELETE) ROWS ;那这些是什么鸟东东啊? 在oracle815上出错 1 CREATE GLOBAL TEMPORARY TABLE cyaa ( 2 COL1 VARCHAR2(10), 3 COL2 NUMBER 4* ) ON COMMIT PRESERVE(DELETE) ROWSSQL> /) ON COMMIT PRESERVE(DELETE) ROWS *ERROR 位于第 4 行:ORA-00905: missing keyword 语法错误:create global temporary table cyaa ( col1 number(1), col2 number(2)) on commit preserve rows.或者create global temporary table cyaa ( col1 number(1), col2 number(2)) on commit delete rows.delete rows表示此临时表是事务级的,preserve rows表示此临时表是会话级的。所谓事务级,即事务完毕后,此临时表即被清空,即commit或rollback之后。而会话级的,表示在整个会话期间都有效,会话断开之后,表中数据被清空,如果,在存储过程中操作了会话级的临时表,那么,当运行此过程的会话结束后,临时表中的数据自动清空。 我要告诉ZONGSH(ZONGSH)Oracle中有临时表!不要在这里不懂装懂!就像楼上几层的高手!create temporary table(NolumnName DateType,……)就可以了! Oracle8i以后才有临时表的,即使是8i也与数据库创建时的参数有关。我用的是8.17的版本,若创建是不选择兼容8.10以上,也不支持Create Global Temporary Table …… 安装ORACLE遇到的问题 真心崩溃了,oracle安装完成后居然没有tnsnames.ora和listener.ora文件 Linux环境下php通过PDO存入oracle汉字乱码 帮个忙哈,一个sql不知道怎么写 在裸设备上的归档日志如何删除 请问在Oracle中如何使用用户自定义的索引啊? 初次使用oracle做项目,出点语法问题,请教下大家 无法登陆Oracle manager Server exists和连接查询,在CBO的情况下,哪种效率高 Oracle中sequence的用法 安装Oracle重启后,为何系统登录不进去?(在线等待) 游标的问题。
COL1 VARCHAR2(10),
COL2 NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ;
这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据
在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRESERVE则一直到会话结束会话指的是什么,是指存储过程本身,就是存储过程执行完毕后,数据自动清空??????
大哥有两层含义,1,真正的老大,大腕级的,2,菜鸟,轻量级的,有点扁你的意思,
不知道我是属于哪个。言归正传,
CREATE GLOBAL TEMPORARY TABLE TABLENAME (
COL1 VARCHAR2(10),
COL2 NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ;那这些是什么鸟东东啊?
1 CREATE GLOBAL TEMPORARY TABLE cyaa (
2 COL1 VARCHAR2(10),
3 COL2 NUMBER
4* ) ON COMMIT PRESERVE(DELETE) ROWS
SQL> /
) ON COMMIT PRESERVE(DELETE) ROWS
*
ERROR 位于第 4 行:
ORA-00905: missing keyword
create global temporary table cyaa ( col1 number(1), col2 number(2)) on commit preserve rows.
或者create global temporary table cyaa ( col1 number(1), col2 number(2)) on commit delete rows.delete rows表示此临时表是事务级的,preserve rows表示此临时表是会话级的。
所谓事务级,即事务完毕后,此临时表即被清空,即commit或rollback之后。而会话级的,表示在整个会话期间都有效,会话断开之后,表中数据被清空,如果,在存储过程中操作了会话级的临时表,那么,当运行此过程的会话结束后,临时表中的数据自动清空。
就像楼上几层的高手!create temporary table(NolumnName DateType,……)就可以了!