如何在oracle中创建一个程序表?

jal*_*oly 8 sql oracle stored-procedures create-table

我想在一个过程中创建一个表.我试图将创建查询放在一个字符串中,然后立即执行该字符串.例如:

create or replace procedure hr.temp is
   var1 varchar2(4000);
begin
   var1:='create table hr.temp(
          id number)';
   execute immediate var1;
end temp;
Run Code Online (Sandbox Code Playgroud)

但是当我执行这个程序时,我得到错误:

ORA-00911: invalid character
ORA-06512: at "SYS.TEMP", line 6
.
.
.
Run Code Online (Sandbox Code Playgroud)

有什么方法可以做到这一点吗?

pah*_*ogi 6

尝试这个。应该可以...

create or replace procedure hr.temp is
   var1 varchar2(4000);
BEGIN
   var1:='create table hr.temp2(
          id number)';
   EXECUTE IMMEDIATE var1;
end temp;
Run Code Online (Sandbox Code Playgroud)