或是如何在
一个普通的select语句中用一个变量来做要查询的字段
  谢谢

解决方案 »

  1.   

    select fieldname into varname from tablename where id=1
    是不是这个意思?
    这样一定要保证只能查到1条或者0条记录
      

  2.   

    把'select A.FM2.CurYE into :1  FROM CW_XMZM A  WHERE     FXMDM="000001" AND FKMDM="102" AND FYEAR2=2002'拆成几个字符串变量,最后合成一个字符串赋个一个变量
    然后再EXECUTE
      

  3.   

    我的意思是 'select 变量 into :1  FROM CW_XMZM A  WHERE     FXMDM="000001" AND FKMDM="102" AND FYEAR2=2002'
      就是实现这个功能,用不用exec都可以。
      主要是要select的字段是变量的原因,
      

  4.   

    sql_stat :='select A.FM2.CurYE   FROM CW_XMZM A  WHERE     FXMDM= '||'000001'||' AND FKMDM= '||'102'||'  AND FYEAR2=2002 ';
     EXECUTE IMMEDIATE sql_stat into :变量名; 
      

  5.   

    楼上的是对的。但要注意,若用pl/sql中写过程的话,into 子句是将结果写到本地变量,所以那个‘:’要去掉。但若要返回给宿主变量,就要加上‘:’了。
      

  6.   

    楼上的,你说的好象不是很明白, 我试了一下,好象不可以啊, 
    sql_stat :='select A.FM2.CurYE  FROM CW_XMZM A  WHERE FXMDM="000001" AND FKMDM="102" AND FYEAR2=2002 ';
    EXECUTE IMMEDIATE sql_stat into curyetemp; 
     说是无效列名错误
      但是只在sqlplus中执行这个select语句 是可以的, 
      

  7.   

    'select'|| 变量 || 'FROM CW_XMZM A  WHERE     FXMDM="000001" AND FKMDM="102" AND FYEAR2=2002'
      

  8.   

    curyetemp变量定义了吧?
    字符串内要用两个单引号就象fxmdm = ''000001''这样
      

  9.   

    我主要是想实现into 的功能啊, 如何into 到一个变量中呢?在上面的基础上
      

  10.   

    是不是字段名写错了?table CW_XMZM 里有字段FM2.CurYE吗?即使有,这个字段也很怪怪的,字段名里可以用'.'吗?我记得好象不可以的。
      

  11.   

    我主要的目的是实现从一个select语句中取道一个值into 到一个变量中
      用execute来
      执行该怎么写啊。
      

  12.   

    你自己定义的类型是什么,是嵌套表,还是object?