select ename 'ename' from emp where sal > 3000
select ename as lower('ename') from emp where sal > 3000Oracle表中字段起别名为什么不能加引号,只是一种标识为什么不可以呢select next_day(date'2003-12-2',1) from dual; 
返回日期晚于 X ,且星期为 CHAR 的那一天的日期。 
D 必须是日期类型,CHAR 的取值 1~7 或 星期的英文
第二个参数怎么给英文。

解决方案 »

  1.   

    Oracle中单引号连接的是字串,双引号才是别名
    select ename "姓名" from emp where sal > 3000
      

  2.   

    --oracle取别名的3种方式,可以用引号但是是双引号,单引号只在字符型用
    SQL> select ename "姓名" , sal 薪水, comm as 提成 from emp;姓名             薪水       提成
    ---------- ---------- ----------
    SMITH             800        900
    ALLEN            1600        300
    WARD             1250        500
    JONES            2975        900
    MARTIN           1250       1400
    BLAKE            2850
    CLARK            2450
    SCOTT            3000        900
    KING             5000
    TURNER           1500          0
    ADAMS            1100        900
    JAMES             950
    FORD             3000        900
    MILLER           1300已选择14行。--你的环境语言要是英文的就可以
    SQL> alter session set nls_language='american';
    SQL> select next_day(sysdate,'FRIDAY') FROM DUAL;NEXT_DAY(SYS
    ------------
    05-NOV-10
      

  3.   

    select next_day(sysdate,'FRIDAY') FROM DUAL;
    我把语言环境改成英文的为什么还不能执行呢(ORA-01846: 周中的日无效)
      

  4.   

    --你执行这个语句看看
    select next_day(sysdate,'FRIDAY','nls_language=american') FROM DUAL;
      

  5.   

    你用的是那个版本啊,我的是Oracle 10我的运行提示找不到FROM关键字,应该是语法错误了
      

  6.   

    alter session set nls_language='american';环境语言要是英文
    如何改回来呢
      

  7.   

    alter session set nls_language='american';
    你修改的是session级别的 不用改回来了 直接重连就回去了
      

  8.   

    2楼完全正解
    select ename "姓名" , sal 薪水, comm as 提成 from emp;
    三种方式
      

  9.   

    我这报错
    select next_day(sysdate,'FRIDAY','nls_language=american') FROM DUAL
           *
    ERROR at line 1:
    ORA-00909: invalid number of arguments
      

  10.   

    --不好意思,这个不符合语法
    --先修改环境语言
    SQL> alter session set nls_language='american';Session altered.SQL> select next_day(sysdate,'friday') from dual;NEXT_DAY(SYS
    ------------
    12-NOV-10SQL> alter session set nls_language='SIMPLIFIED CHINESE';会话已更改。SQL> select next_day(sysdate,'星期五') from dual;NEXT_DAY(SYSDA
    --------------
    12-11月-10
      

  11.   

    总结一下:
    1、字段名加双引号表示Oracle将严格区分大小写,Oracle默认为大写
       select * from "dual";(这样是查询不到的)
       在Oracle中双引号一般用来转义的,如果alias中有空格或其它保留字,则此时必须加上双引号进行区分
    2、字段加上单引号,并不区分大小写
       select 'ename' from emp;
       单引号可以进行日期,字符串的引用操作