表名称:imaging_mode
字段:mode(主键)、img_width,img_height,img_infoSELECT * FROM imaging_mode a WHERE a.mode = 'BM256';这个语句在PL/SQL中无法通过,请问这样的sql语句咋写呢?后面的程序已经查询该表了,所以不能修改表字段名称。程序中使用的语句没有问题。SELECT * FROM imaging_mode;

解决方案 »

  1.   


    SELECT a.* FROM imaging_mode a WHERE a.mode = 'BM256';
      

  2.   

    SELECT * FROM imaging_mode WHERE mode = 'BM256';

    SELECT a.* FROM imaging_mode a WHERE a.mode = 'BM256';
    如果有别名,就全加上别名;如果没有,就都不要。
      

  3.   

    你在PLSQL中写个SQL语句是什么用途啊,如果取数据使用into语句啊,你的语句本身没任何问题,只不过不能在PLSQL程序中,如果想得到这个查询的结果,要用into
      

  4.   

    SELECT * FROM imaging_mode a WHERE a.mode = 'BM256';
    这种情况没必要用别名了。SELECT * FROM imaging_mode WHERE mode = 'BM256';如果一定要用,那就:
    SELECT a.* FROM imaging_mode a WHERE a.mode = 'BM256';
      

  5.   

    楼上的几位哥们(姐们):
    请将你们写的SQL语句放到PL/SQL Developer或者是SQL*PLUS中试一试?
    mode这个词好像是ORACLE中的一个关键字。
      

  6.   

    她是oracle的保留字,可以在mode加上双引号。
      

  7.   

    SQL> with imaging_mode as(
      2  select 'BM256' "mode",2 img_width,3 img_height,'X' img_info from dual
      3  union all
      4  select 'BM258' "mode",5 img_width,4 img_height,'Y' img_info from dual)
      5  select * from imaging_mode where "mode"='BM256';
     
    mode   IMG_WIDTH IMG_HEIGHT IMG_INFO
    ----- ---------- ---------- --------
    BM256          2          3 X
     
    SQL> 
      

  8.   

    注意引号里面的关键字字段名 要和建表的时候的字段名字一模一样 大小写也不能写错SELECT a.* FROM imaging_mode a WHERE a."mode" = 'BM256';
      

  9.   

    方法1:
       select t.*
      from (SELECT mode as mode1, img_width, img_height, img_info FROM imaging_mode) t
     where t.mode1 = 'BM256'方法2:
    select t.*
      from (SELECT mode "mode", img_width, img_height, img_info FROM imaging_mode) t
     where t."mode" = 'BM256'