这是我用ORACLE写的存储过程
 create or replace procedure pro_tabstudent(c_xuehao varchar2,c_xingming varchar2,c_zhuangye varchar2) is
v_xuehao varchar2(10):=c_xuehao;
v_xingming varchar2(20):=c_xingming;
v_zhuangye varchar2(20):=c_zhuangye;
begin
insert into tabstudent values(v_xuehao,v_xingming,v_zhuangye);
  
end pro_tabstudent;在delphi中调用存储过程
procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('{call pro_tabstudent(?,?,?)}');
adoquery1.Parameters.CreateParameter('c_xuehao',ftstring,pdinput,20,'031150019');
adoquery1.Parameters.CreateParameter('c_xingming',ftstring,pdinput,20,'小徐');
adoquery1.Parameters.CreateParameter('c_zhuangye',ftstring,pdinput,20,'计算机科学与技术');
adoquery1.ExecSQL;
end;
系统提示说列不存在,大伙帮我看看要怎么写才正确呢

解决方案 »

  1.   

    但是Oracle中是存在大小写的啊
      

  2.   

    create table tmp5(c_xuehao varchar2(100),c_xingming varchar2(100),c_zhuangye varchar2(100));
    /create or replace procedure InsertTmp5( c_xuehao varchar2,c_xingming varchar2,c_zhuangye varchar2 ) is
    begin
      insert into tmp5 values( c_xuehao ,c_xingming ,c_zhuangye  );
    end InsertTmp5;
    /begin
      with self.ADOCommand1 do
      begin
        CommandType:=cmdStoredProc;
        CommandText:='InsertTmp5';
        Parameters.CreateParameter( 'c_xuehao',ftString,pdInput,100,'11');
        Parameters.CreateParameter( 'c_xingming',ftString,pdInput,100,'22');
        Parameters.CreateParameter( 'c_zhuangye',ftString,pdInput,100,'33');
        Execute;
      end;
    end;
      

  3.   

    五楼的朋友不错,但是使用adostoredproc同样使用