
正文
oracle在存储过程中创建表,oracle 创建储存过程
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
想用oracle的存储过程动态建表
MySQL 会基本遵守 max_heap_table_size 的设定,在内存不够用时,直接将表转到磁盘上存储。
Oracle 的临时表的 处理机制,和 SQL Server 的不一样。假如你的临时表的结构不是每次执行都发生变化的话 那么就是事先 通过 CREATE GLOBAL TEMPORARY TABLE 语句,把临时表建立好。
execute immediate insert into test values (v_i); 或者你就直接建一个永久性的表(建表语句就不要写在存储过程当中了),然后每次赋值前先截断 ,这样存储过程是不会因为对象不存在而失效。
肯定是存储的内部啊,不管是oracle 还是SQL sever 或者其他。
存储过程创建表后,在编译阶段数据库中并没有该表。这时向表中插入数据,会提示表不存在。所以,插入语句要赋值到变量里,通过e来执行。
相关问答
Q1: ORACLE中存储过程使用的临时表.是应该在外部创建还是在存储过程内部动态...
有区别,正常建立的临时表是一直存在的,除非数据库重启或者用语句删除,存储过程中建立的,等存储过程执行完以后,临时表销毁,表空间释放。
临时表在事前先创建好 会话/存储过程中,只作INSERT/SELECT操作 避免在存储过程中,创建临时表 临时表数据,仅仅当前会话能够检索到,会话一的数据,在会话二那里,无法检索到,只能检索到表结构。
不知道楼主的需求如何 一般没必要创建临时表,处理数据后又它drop。存储过程中要用到的表应该会经常用到。就让它存在吧,用完用 truncate table 清理数据就可以了。空表不会占很多资源。 我们就是这样做的。
Q2: ORACLE存储过程中,可以动态创建表么
1、MySQL 会基本遵守 max_heap_table_size 的设定,在内存不够用时,直接将表转到磁盘上存储。
2、肯定是存储的内部啊,不管是oracle 还是SQL sever 或者其他。
3、没有这种动态创建表的语句。你的需求,只能是通过sql语句获取建表语句。或者使用存储过程创建这个表。
4、有区别,正常建立的临时表是一直存在的,除非数据库重启或者用语句删除,存储过程中建立的,等存储过程执行完以后,临时表销毁,表空间释放。
5、这样写是有问题的,动态sql不支持create 。。 select这种语法。
6、不知道楼主的需求如何 一般没必要创建临时表,处理数据后又它drop。存储过程中要用到的表应该会经常用到。就让它存在吧,用完用 truncate table 清理数据就可以了。空表不会占很多资源。 我们就是这样做的。
oracle在存储过程中创建表的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle 创建储存过程、oracle在存储过程中创建表的信息别忘了在本站进行查找喔。







