存储过程的作用不就是把insert 语句放在数据库里运行,提高速度吗? create or repace procedure Intestpro(usreid in int,username in varchar2,usersex in varchar2,age in int) is tempsql varchar2(50); begin tempsql='insert into testpro values (|| userid ||,'||username||','||usersex||',|| age ||)'; execute immediate tempsql; end; 不知道这样写正确不....?
上面的改为tempsql='insert into testpro values ( userid ,username,usersex, age )';按你的要求没必要用动态sql
create or replace procedure Intestpro(usreid in int,username in varchar2,usersex in varchar2,age in int) is tempsql varchar2(50); begin tempsql='insert into testpro values ('|| userid ||','||username||','||usersex||','|| age ||')'; execute immediate tempsql; end; 再说这样也编译不过去!
当然了,你的userid定义的时候都写错了,怎么编译啊?按下面的编译create or replace procedure Intestpro(userid in int,username in varchar2,usersex in varchar2,age in int) is tempsql varchar2(50); begin tempsql:='insert into testpro values ('|| userid ||','||username||','||usersex||','|| age ||')'; execute immediate tempsql; end;
上面少写了一个引号create or replace procedure Intestpro(userid in int,username in varchar2,usersex in varchar2,age in int) is tempsql varchar2(200); begin tempsql:='insert into testpro values ('|| userid ||','''||username||''','''||usersex||''','|| age ||')'; execute immediate tempsql; commit; end;
create or repace procedure Intestpro(usreid in int,username in varchar2,usersex in varchar2,age in int)
is
tempsql varchar2(50);
begin
tempsql='insert into testpro values (|| userid ||,'||username||','||usersex||',|| age ||)';
execute immediate tempsql;
end;
不知道这样写正确不....?
Question1:100分
Question2:100分
欲上青天揽明月,将下宝盆捞分值!
第一个问题当中id 在数据库中是number类型,象这样'|| userid ||'行吗?
第二个问题写一个例子来看一下!
is
tempsql varchar2(50);
begin
tempsql='insert into testpro values ('|| userid ||','||username||','||usersex||','|| age ||')';
execute immediate tempsql;
end;
再说这样也编译不过去!
is
tempsql varchar2(50);
begin
tempsql:='insert into testpro values ('|| userid ||','||username||','||usersex||','|| age ||')';
execute immediate tempsql;
end;
is
tempsql varchar2(200);
begin
tempsql:='insert into testpro values ('|| userid ||','''||username||''','''||usersex||''','|| age ||')';
execute immediate tempsql;
commit;
end;