ORACLE存储过程创建临时表并插入数据。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE存储过程创建临时表并插入数据。相关的知识,希望对你有一定的参考价值。

create or replace procedure test_proc
as
begin
execute immediate '
create global temporary table T_AB(
id_ number,
name_ varchar2(20),
num_ number)
as
select
A.id_,
A.name_,
B.num_
from
T_A A,
T_B B
where
A.id_=B.id_';
end;
报错是:
ORA-01773: 此 CERATE TABLE 中没有指定列的数据类型
ORA-06512: 在 "U_ORACLE.TEST_PROC", line 4
ORA-06512: 在 line 2
哪位大神给解决下?
在线等。。。

存储过程创建表后,在编译阶段数据库中并没有该表。这时向表中插入数据,会提示表不存在。所以,插入语句要赋值到变量里,通过e来执行。 参考技术A 你这个语法是不对的
你create table as select 的时候是不能指定列的数据类型,因为你是根据查询结果创建一个表,列名和数据类型都是由查询结果定的,或者你可以
create table
然后
insert into table select ...
改成下面这样
create or replace procedure test_proc
as
begin
execute immediate '
create global temporary table T_AB as
select
A.id_,
A.name_,
B.num_
from
T_A A,
T_B B
where
A.id_=B.id_';
end;本回答被提问者采纳

oracle存储过程中临时表的使用,该怎么处理

1、Oracle临时表分两种,事务级临时表和会话级临时表
2、事务级临时表在事务结束后会被清空,会话级临时表在事务结束后不会清空而是在回话结束会自动清空。
3、如果是在存储过程用临时表并不需要从临时表里把数据返回到存储过程之外的用事务级临时表即可;如果要从临时表里把数据返回到存储过程之外则需要用会话级临时表(这个跟mssql不一样,mssql用事务级临时表也可以返回结果)
注:存储过程里使用会话级临时表时,往临时表里插入数据前要先清空临时表内的数据
参考技术A 请详细描述你的问题

以上是关于ORACLE存储过程创建临时表并插入数据。的主要内容,如果未能解决你的问题,请参考以下文章

oracle存储过程中临时表的使用,该怎么处理

创建临时表并使用存储过程将数据加载到其中

oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临时表的所有数据,最后drop这个表。

oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临时表的所有数据,最后drop这个表。

Oracle存储过程创建临时表,插入数据后,怎么返回临时表数据,并在asp.net中接收到datatable中

oracle 的存储过程中 动态的创建一张表 然后插入一个变量到这个表中,表能动态的创建但是变量不能插入进去