要把STUDENT表中的学生名和学号放在一张临时表中CREATE GLOBAL TEMPORARY LSSTUDENT(
NAME VARCHAR2(15);
CODE CHAR(6))ON COMMIT PERSERVE ROWS;
存储过程中要创建这样的临时表,这条语句要放在储存过程的什么位置报错:PLS-00103:出现符号 CREATE 在需要下列之一时:
NAME VARCHAR2(15);
CODE CHAR(6))ON COMMIT PERSERVE ROWS;
存储过程中要创建这样的临时表,这条语句要放在储存过程的什么位置报错:PLS-00103:出现符号 CREATE 在需要下列之一时:
execute immediate 'CREATE GLOBAL TEMPORARY LSSTUDENT(
NAME VARCHAR2(15);
CODE CHAR(6)
)ON COMMIT PERSERVE ROWS';
preserve rows表示在会话结束后清除临时表的数据前者在事务提交后数据就已经清除了.
后者在会话中止时或者导常退出时数据都会被清除掉.
# create procedure pro
# as
# str varchar2(100);
# begin
# str:='CREATE GLOBAL TEMPORARY TABLE TABLENAME (
# COL1 VARCHAR2(10),
# COL2 NUMBER
# ) ON COMMIT PRESERVE ROWS' ;
# execute immediate str; --使用动态SQL语句来执行
# end;
# /
create procedure pro
as
str varchar2(100);
begin
str:='CREATE GLOBAL TEMPORARY TABLE TABLENAME (
COL1 VARCHAR2(10),
COL2 NUMBER
) ON COMMIT PRESERVE ROWS' ;
execute immediate str; --使用动态SQL语句来执行
end;