http://community.csdn.net/Expert/topic/3826/3826504.xml?temp=.3672754

解决方案 »

  1.   

    declare @sql varchar(1000),@str varchar(20)
    set @str='''ca'',''ks'''
    set @sql='select * from authors where state in ('+@str+')'
    exec(@sql)
    set @str='61,71'
    set @sql='select * from table1 where number1 in ('+@str+')'
      

  2.   

    use pubs
    go
    declare @vsql varchar(4000),@str nvarchar(2000)
    set @vsql = '''ca'',''ks'''
    --这里打印没问题 出来的是'ca','ks'
    print @vsql
    --这里把值传进去。照例说应该和最下面的那条SQL语句出来是同样的结果啊。但为什么是空呢?
    select @str = 'select * from authors where state in ('+@vsql+')'
    print @strexec(@str)
      

  3.   

    --oralce的存储过程
    create or replace PROCEDURE TEMP(vsql varchar2,RetCursor OUT myCursor)
    is
    begin
    exec('select * from table1 where number1 in ('+vsql+')'; 
    end;