根据用户的自定义统计,我有需要动态生成一个临时表(在执行存储过程时),具体做法如下:
Create procedure TestProc()
is
begin
execute immediate 'CREATE GLOBAL TEMPORARY TABLE temp_table
(
id varchar2(6) ,
name varchar2(200) ,
type int ,
address varchar2(30)
) On Commit Delete Rows '
end testProc这是这个临时表的基本结构,根据传入参数的不同,列还会通过Alter来修改,但一执行存储过程就提示我没有权限,但我直接把Exceute Immediate里的代码拿过来执行是可以建立这个临时表的呀?这是为什么怎么解决??
不好意思,接触oracle不久
Create procedure TestProc()
is
begin
execute immediate 'CREATE GLOBAL TEMPORARY TABLE temp_table
(
id varchar2(6) ,
name varchar2(200) ,
type int ,
address varchar2(30)
) On Commit Delete Rows '
end testProc这是这个临时表的基本结构,根据传入参数的不同,列还会通过Alter来修改,但一执行存储过程就提示我没有权限,但我直接把Exceute Immediate里的代码拿过来执行是可以建立这个临时表的呀?这是为什么怎么解决??
不好意思,接触oracle不久
execute immediate v_sql;
v_sql:= 'create mytable...';
execute immediate v_sql;