在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答案通常被认为是低质量的。你能给你的答案加个解释吗。