Plsql 使用Execute Immediate执行变量
当我试图运行下面的代码时,会出现类似“PL/SQL编译错误”的错误。我做错了什么Plsql 使用Execute Immediate执行变量,plsql,oracle11g,Plsql,Oracle11g,当我试图运行下面的代码时,会出现类似“PL/SQL编译错误”的错误。我做错了什么 declare vsql varchar2(500); begin vsql:='begin create global temporary table temp_subset ( id number ,"Category" varchar2(2048) ,"Class" varchar2(2048) ,"Measure" varchar2(2048
declare vsql varchar2(500);
begin
vsql:='begin
create global temporary table temp_subset
( id number
,"Category" varchar2(2048)
,"Class" varchar2(2048)
,"Measure" varchar2(2048)
,"Actuals Year Total" varchar2(2048)
,"COL NAME" varchar2(256)
,value varchar2(2048)
);
end;';
execute immediate vsql;
end;
谢谢。试试这个:
vsql:='
create global temporary table temp_subset
( id number
,"Category" varchar2(2048)
,"Class" varchar2(2048)
,"Measure" varchar2(2048)
,"Actuals Year Total" varchar2(2048)
,"COL NAME" varchar2(256)
,value varchar2(2048)
) on commit delete rows';
如果需要创建两个表:
vsql:='
begin
execute immediate ''create table t1 ()'';
execute immediate ''create table t2 ()'';
end;
';
好的,谢谢,如果我想在一个变量中执行两个表的创建,它工作得很好。我们怎样才能做到这一点。你能给我举个例子吗?为什么要用动态SQL创建一个表?