Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在oracle的过程中传递值时如何创建表?_Oracle_Stored Procedures_Oracle11g - Fatal编程技术网

在oracle的过程中传递值时如何创建表?

在oracle的过程中传递值时如何创建表?,oracle,stored-procedures,oracle11g,Oracle,Stored Procedures,Oracle11g,我做了一个程序,它取值并生成一个表,它是: create or replace procedure offc.temp(data1 varchar2(200)) is var1 varchar2(4000); BEGIN var1:='create table offc.temp'||data1||'( id number)'; EXECUTE IMMEDIATE var1; end; 我在执行此过程时出错: [Warning] ORA-24344: su

我做了一个程序,它取值并生成一个表,它是:

create or replace procedure offc.temp(data1 varchar2(200)) is
   var1 varchar2(4000);
BEGIN
   var1:='create table offc.temp'||data1||'(
          id number)';
   EXECUTE IMMEDIATE var1;
end;
我在执行此过程时出错:

[Warning] ORA-24344: success with compilation error
1/35    PLS-00103: Encountered the symbol "(" when expecting one of the following:
          := . ) , @ % default character
          The symbol ":=" was substituted for "(" to continue.
 (11: 0): Warning: compiled but with compilation errors

当我想通过将值传递给过程来创建表时,为什么会出现此错误。

您不能将长度放入参数类型中

create or replace procedure offc.temp(data1 varchar2) is
   var1 varchar2(4000);
BEGIN
   var1:='create table offc.temp'||data1||'(
          id number)';
   EXECUTE IMMEDIATE var1;
end;

只需将
varchar2(200)
替换为
varchar2
code-only答案通常被认为是低质量的。你能给你的答案加个解释吗。