请问:如何可以像建SQL Server中临时表#temptable1这样在oracle中也建一个类似这样的临时表,没有实际产生物理表,可以在存储过程中使用。
解决方案 »
- 编写sql语句
- 麻烦大家帮我看看,到底哪里有问题,急急急!!!
- 高难度select语句的编写
- oracle中公式运算问题
- 帮看一个oracle函数的错误。。。
- package 中有clob变量,效率变慢
- oracle中null等于''?
- 我的oracle9i在enterprise manager console 用sysman登陆,在方案里怎么看不到“视图”"java源"等节点?
- ORACLE卸载后的安装问题
- 如何在建表时候指定其数据的变化不引用回滚段.
- 请问用什么工具可以可视化的看数据库结构(如表结构、表与表之间关系)的工具?
- oracle 执行truncate操作后,block块中数据有没有被清空
COL1 VARCHAR2(10),
COL2 NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ;--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)其实可以用游标实现,用完后就可关闭,比起临时表.
比如:
用SQLPLUS登录到数据库,则建立好了一个SESSION,在此之后的所有操作都是属于此SESSION,当直到SQLPLUS退出时,SESSION关闭.所以,系统删除临时数据是在切断连接的时候,与存储过程是否结束没有关系.
sqlstr1 varchar2(1000);
sqlstr2 varchar2(1000);
begin
sqlstr1 := 'CREATE GLOBAL TEMPORARY TABLE t_1
( COL1 VARCHAR2(10),COL2 NUMBER ) ON COMMIT PRESERVE ROWS ';
execute immediate sqlstr1;
end sp_temporary_table;系统说我“权限不足”,我已经给了DBA的权限了,我要给什么权限才可以测试成功呢???
在存储过程中建表什么的,必需直接把权限给用户,用角色是不行的.