有两个语句(oracle数据库)
strsql1:='select * from table1';
strsql2:='select * from table2';strsql3:=strsql1 + strsql2;excute(strsql3);请问怎么才能让strsql3执行,strsql1和strsql2之间用什么字符隔开?

解决方案 »

  1.   

    你想做什么用啊?
    strsql3 := 'begin '+strsql1+';'+strsql2+'; end;';
      

  2.   

    我要存数很多个点(>1000个)到数据库中,
    因此我用
    strsql:='insert point values('+x1+','+y1+','+ID)'
    for 1000次 do
    strsql:=strsql+strsqlexcute(strsql)
    只访问一次数据库,据说这样能提高效率,不知道各位大虾有什么高招?
      

  3.   

    用insert into table1(field1,field2,field3)
      (select field1,field2,field3 from table2)
    不行吗?
      

  4.   

    genphone_ru老兄,strsql3 := 'begin '+strsql1+';'+strsql2+'; end;'
    这样我试了好像不行呀。cdkey老兄,我所有的点是要存到数据库里的,原数据库中是没有的
      

  5.   

    呵呵,学习。
    我以前是用参数加循环的。
    query1.sql.add('insert into table1 values(:f1,:f2,:f3)');
    for i:=1 to 1000 do
      begin
      query1.params[0].value:=f1[i];
      query1.params[1].value:=f2[i];
      query1.params[3].value:=f3[i];
      query1.execsql;
      end;
      

  6.   

    To:cdkey:参数加循环速度会很慢的,因为插入1000个点就要访问1000次数据库,很费时。
    To:NightCloud,在sql server 里是可以,但我在oracle里试了好像不可以