使用exec(string)得语法!
将你得存储过程得SQL语句作为一个STRING字符串传进EXEC()中执行!

解决方案 »

  1.   

    create proc NewTable @tablename varchar(20)
    as
    exec("select * Into" + @tablename + "from SourceName")
      

  2.   

    使用DBMS_SQL包,实现动态SQL, 详情参阅《Oracle8 PL/SQL程序设计》
      

  3.   

    pjy,huntout,谢谢你们,你们的方法是可行的但是我用的是Delphi中的 Storedproc 存储过程来执行的时候会出现 "Error Creating cursor handle"错,可是它会在SQL SERVER 中新建一个表新建完成后就会出现上面的错请问怎么解决。你也用DELPHI吗?
    我用的存储过程是:
    CREATE PROCEDURE newtable @table1 varchar(20)=new
    AS
    set nocount on
    declare @mysql varchar(100)
    select @mysql="select * into "+@table1+" from titles"
    exec(@mysql) 
     在delphi中执行完后在 pubs 库中会多一个new表可是在Delphi中会给出上面的错误信息。请问这又怎样解决?我的存储过程有错吗?
      

  4.   

    Delphi一般会认为存储过程要返回结果集的,相信如果你在最后一行写个select不会出现问题。
      

  5.   

    谢谢你OPKJ,经你指点,问题解决。因我刚开始学Delphi,对数据库应用方面不是很了解.
    我在存储过程最后加入一条 select 语句后问题得以解决真是太高兴了。
      

  6.   

    非也非也,这是治标不治本的办法,自己去想一想如何告诉Delphi本存储进程不返回结果集。
      

  7.   

    opkj大侠能不能请明示,我找不到这个属性,因为我手头上参考资料很少。